Question: Challenge has an issue. User Agent is: <codeMozilla/5.0 (X11; Linux x86_64) 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. Hi guys. The actual code you provided has some small typo. In the challenge description ourLoop i variable has 10 as starting point. In code instead ourLoop is started by 9. It's pretty weird because construction of ourLoop in code is actual solution to this challenge :) My code:

"assert.deepEqual(myArray, [9,7,5,3,1], 'message: myArray should equal [9,7,5,3,1]');" ], "challengeSeed":[  "ourArray = [];",   "var ourArray = [];",  "",  "for(var i = 9; i > 0; i -= 2){",   "for(var i = 10; i > 0; i -= 2){",  "  ourArray.push(i);", "}", "",


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (X11; Linux x86_64; rv:41.0) Gecko/ Firefox/41.0</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code: In the code above when I wrote the line: " <pView more <a href=""cat photos</a</p" at the end.It did not made all the problems correct. But when I used the same code just above the cat picture it showed correct output. Attaching the screen shot for wrong output(line 38): ! Attaching the screen shot for correct output(line 30): ! There's no difference in the code except the position(line 38 in 1st screen shot vs line 30 in 2nd screen shot).
This test expects the wrapping tag you insert to be the first tag on the page. This had been fixed by a previous PR that has been overwritten. Someone will need to make a new PR that either makes it clear where the user needs to put their code or makes the test not care.
Yes,that should be made clear because otherwise wrong result for this is frustrating.

"assert($("a").text().match(/catsphotos/gi), 'Your a element should have the anchor text of "cat photos"')", "assert($("p") && $("p").length > 2, 'Create a new p element around your a element.')", "assert($("a[href="http://www.freecatphotoapp.com"]").parent().is("p"), 'Your a element should be nested within your new p element.')",  "assert($("p").text().match(/^s*Viewsmores/gi), 'Your p element should have the text "View more " (with a space after it).')",   "assert($("a[href="http://www.freecatphotoapp.com"]").parent().text().match(/^s*Viewsmores/gi), 'Your p element should have the text "View more " (with a space after it).')",  "assert(!$("a").text().match(/Viewsmore/gi), 'Your a element should not have the text "View more".')", "assert(editor.match(/
/g) && editor.match(/<p/g) && editor.match(/
/g).length === editor.match(/<p/g).length, 'Make sure each of your p elements has a closing tag.')", "assert(editor.match(//g) && editor.match(/<a/g) && editor.match(//g).length === editor.match(/<a/g).length, 'Make sure each of your a elements has a closing tag.')"


Question:
When I attempt to Run the tests for the code I submitted for Roman Numerals Converter, the page freezes and I cannot solve the issue until I clear the cashe of my browser. Help!
I have the same issue. My browser complains about a long running script and then bails out.
Ok, I figured this one out... if you use the solution in the Gritter chat, that solution will cause a never ending loop, because of the while expression (while numCopy 0 - which is always true btw). This never ending loop will freeze your browser. Moreover, as I lately discovered, the solution there only covers very few of the cases that we need to test to pass the Bonfire. So back to the drawing board, people!
Leaving this open as a bug for someone to fix the solution in the wiki to one that works with the new test cases.

} pairedWith = pairedWith.pop(); <del> //debug('This is paired with', Object.keys(pairedWith)); debug('This is paired with's uncompleted bonfires array', pairedWith.uncompletedBonfires); </del> index = pairedWith.uncompletedBonfires.indexOf(bonfireHash); if (index > -1) { pairedWith.uncompletedBonfires.splice(index,1)

}; exports.returnNextBonfire = function(req, res, next) { <del> // TODO //var tempUser = false; </del> if (!req.user) { <del> res.redirect('bonfires/meet-bonfire'); //tempUser = true; //req.user = new User(); </del> <ins> return res.redirect('bonfires/meet-bonfire'); </ins> } <del> var currentTime = parseInt(+new Date() / 1000) </del> <ins> var currentTime = parseInt(+new Date() / 1000); </ins> if (currentTime - req.user.lastContentSync > 86400) { req.user.lastContentSync = currentTime; <del> var completed = req.user.completedBonfires.map(function(elem) { </del> <ins> var completed = req.user.completedBonfires.map(function (elem) { </ins> return elem._id; }); <del> req.user.uncompletedBonfires = resources.allBonfireIds().filter(function(elem) { if (completed.indexOf(elem) === -1) { return elem; } </del> <ins> req.user.uncompletedBonfires = resources.allBonfireIds().filter(function (elem) { if (completed.indexOf(elem) === -1) { return elem; } </ins> }); req.user.save(); }

completedWith: null, title: bonfire[bonfireNumber].name, name: bonfire[bonfireNumber].name, <del> difficulty: +bonfire[bonfireNumber].difficulty, </del> <ins> difficulty: Math.floor(+bonfire[bonfireNumber].difficulty), </ins> brief: bonfire[bonfireNumber].description[0], details: bonfire[bonfireNumber].description.slice(1), tests: bonfire[bonfireNumber].tests,

res.render('bonfire/show', { completedWith: null, title: bonfireName, <ins> name: bonfireName, </ins> difficulty: +bonfireDifficulty, brief: bonfireDescription[0], details: bonfireDescription.slice(1),

"challengeEntryPoint": "meetBonfire("You can do this!");" }, { <ins> "_id": "a202eed8fc186c8434cb6d61", "name": "Reverse a String", "difficulty": "1.01", "tests": [ "expect(reverseString('hello')).to.be.a('String');", "expect(reverseString('hello')).to.equal('olleh');", "expect(reverseString('Howdy')).to.equal('ydwoH');", "expect(reverseString('Greetings from Earth')).to.equal('htraE morf sgniteerG');" ], "description": [ "Reverse the provided string.", "You may need to turn the string into an array before you can reverse it.", "Your result must be a string." ], "challengeEntryPoint": "reverseString('hello');", "challengeSeed": "function reverseString(str) {n  return str;rn}" }, { "_id": "a302f7aae1aa3152a5b413bc", "name": "Factorialize a Number", "tests": [ "expect(factorialize(5)).to.be.a("Number");", "expect(factorialize(5)).to.equal(120);", "expect(factorialize(10)).to.equal(3628800);", "expect(factorialize(20)).to.equal(2432902008176640000);" ], "difficulty": "1.02", "description": [ "Return the factorial of the provided integer.", "If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.", "Factorials are often represented with the shorthand notation n!", "For example: 5! = 1 * 2 * 3 * 4 * 5 = 120f" ], "challengeSeed": "function factorialize(num) {n  return  num;rn}", "challengeEntryPoint": "factorialize(5);" }, { </ins> "_id" : "aaa48de84e1ecc7c742e1124", "name": "Check for Palindromes", <del> "difficulty": "1", </del> <ins> "difficulty": "1.03", </ins> "description": [ "Return 'true' if a given string is a palindrome.", "A palindrome is a word or sentence that's spelled the same way both forward and backward, ignoring punctuation and case.",

"challengeEntryPoint": "palindrome("eye");" }, { <ins> "_id": "a26cbbe9ad8655a977e1ceb5", "name": "Find the Longest Word in a String", "difficulty": "1.04", "description": [ "Return the length of the longest word in the provided sentence.", "Your response should be a number." ], "challengeEntryPoint": "findLongestWord('The quick brown fox jumped over the lazy dog');", "challengeSeed": "function findLongestWord(str) {n  return str.length;rn}", "tests": [ "expect(findLongestWord('The quick brown fox jumped over the lazy dog')).to.be.a('Number');", "expect(findLongestWord('The quick brown fox jumped over the lazy dog')).to.equal(6);", "expect(findLongestWord('May the force be with you')).to.equal(5);", "expect(findLongestWord('Google do a barrel roll')).to.equal(6);", "expect(findLongestWord('What is the average airspeed velocity of an unladen swallow')).to.equal(8);" ] }, { "_id": "ab6137d4e35944e21037b769", "name": "Title Case a Sentence", "difficulty": "1.05", "description": [ "Return the provided string with the first letter of each word capitalized.", "For the purpose of this exercise, you should also capitalize connecting words like 'the' and 'of'." ], "challengeEntryPoint": "titleCase("I'm a little tea pot")", "challengeSeed": "function titleCase(str) {n  return str;rn}", "tests": [ "expect(titleCase("I'm a little tea pot")).to.be.a('String');", "expect(titleCase("I'm a little tea pot")).to.equal("I'm A Little Tea Pot");", "expect(titleCase("sHoRt AnD sToUt")).to.equal("Short And Stout");", "expect(titleCase("HERE IS MY  HANDLE HERE IS MY SPOUT")).to.equal("Here Is My  Handle Here Is My Spout");" ] }, { "_id": "a789b3483989747d63b0e427", "name": "Return Largest Numbers in Arrays", "difficulty": "1.06", "description": [ "Return an array consisting of the largest numbers in the provided array. The array will contain 4 sub-arrays.", "Remember, you an iterate through an array with a simple for loop, and access each member with array syntax arr[i] .", "If you are writing your own Chai.js tests, be sure to use a deep equal statement instead of an equal statement when comparing arrays." ], "challengeEntryPoint": "largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);", "challengeSeed": "function largestOfFour(arr) {n  // You can do this!rn  return arr;rn}", "tests": [ "expect(largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]])).to.be.a('array');", "(largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]])).should.equals([5,27,39,1001]);", "assert(largestOfFour([[4, 9, 1, 3], [13, 35, 18, 26], [32, 35, 97, 39], [1000000, 1001, 857, 1]]) === [9,35,97,1000000]);" ] }, { "_id": "a3566b1109230028080c9345", "name": "Sum All Numbers in a Range", "difficulty": "2.00", "description": [ "We'll pass you an array of two numbers. Return the sum those two numbers and all numbers between them.", "The lowest number will not always come first." ], "challengeEntryPoint": "sumAll([1, 4]);", "challengeSeed": "function sumAll(arr) {n  return(1);rn}", "tests": [ "expect(sumAll([1, 4])).to.be.a('Number');", "expect(sumAll([1, 4])).to.equal(10);", "expect(sumAll([4, 1])).to.equal(10);", "expect(sumAll([5, 10])).to.equal(45);", "expect(sumAll([10, 5])).to.equal(45);" ] }, { "_id": "a5229172f011153519423690", "name": "Sum All Odd Fibonacci Numbers", "difficulty": "2.01", "description": [ "Return the sum of all odd fibonacci numbers up to and including the passed number.", "Starting from 1, the first few numbers of a Fibonacci sequence are 1, 2, 3, 5 and 8, and each subsequent number is the sum of the previous two numbers." ], "challengeEntryPoint": "sumFibs(1000);", "challengeSeed": "function sumFibs(num) {n  return num;rn}", "tests": [ "expect(sumFibs(1)).to.be.a('number');", "expect(sumFibs(1000)).to.equal(3382);", "expect(sumFibs(4000000)).to.equal(10316619);", "expect(sumFibs(4)).to.equal(10);" ] }, { "_id": "a3bfc1673c0526e06d3ac698", "name": "Sum All Primes", "difficulty": "2.10", "description": [ "Sum all the prime numbers up to and including the provided number.", "A prime number is defined as having only two divisors, 1 and itself. For example, 2 is a prime number because it's only divisible by 1 and 2. 1 isn't a prime number, because it's only divisible  by itself.", "The provided number may not be a prime." ], "challengeEntryPoint": "sumPrimes(10);", "challengeSeed": "function sumPrimes(num) {n  return num;rn}", "tests": [ "expect(sumPrimes(10)).to.be.a('number');", "expect(sumPrimes(10)).to.equal(27);", "expect(sumPrimes(977)).to.equal(73156);" ] }, { "_id": "ae9defd7acaf69703ab432ea", "name": "Smallest Common Multiple", "difficulty": "2.11", "description": [ "Find the smallest number that evenly divides all numbers in the provided range.", "The range will be an array of two numbers that will not necessarily be in numerical order." ], "challengeEntryPoint": "smallestCommons([1,5]);", "challengeSeed": "function smallestCommons(arr) {n  return arr;rn}rn", "tests": [ "expect(smallestCommons([1,5])).to.be.a('number');", "expect(smallestCommons([1,5])).to.equal(60);", "expect(smallestCommons([5,1])).to.equal(60);", "(smallestCommons([1,13])).should.equal(360360);" ] }, { </ins> "_id" : "aff0395860f5d3034dc0bfc9", "name": "Validate US Telephone Numbers", <del> "difficulty": "3", </del> <ins> "difficulty": "3.10", </ins> "description": [ "Return true if the passed string is a valid US phone number", "The user may fill out the form field any way they choose as long as it is a valid US number. The following are all valid formats for US numbers:",

"challengeEntryPoint": "telephoneCheck("555-555-5555");" }, { <del> "_id": "a202eed8fc186c8434cb6d61", "name": "Reverse a String", "difficulty": "1", "tests": [ "expect(reverseString('hello')).to.be.a('String');", "expect(reverseString('hello')).to.equal('olleh');", "expect(reverseString('Howdy')).to.equal('ydwoH');", "expect(reverseString('Greetings from Earth')).to.equal('htraE morf sgniteerG');" ], </del> <ins> "_id": "556138aff60341a09ed6c480", "name": "Inventory Update", "difficulty": "3.11", </ins> "description": [ <del> "Reverse the provided string.", "You may need to turn the string into an array before you can reverse it.", "Your result must be a string." </del> <ins> "Compare and update inventory stored in a 2d array against a second 2d array of a fresh delivery. Update current inventory item quantity, and if an item cannot be found, add the new item and quantity into the inventory array in alphabetical order." </ins> ], <del> "challengeEntryPoint": "reverseString('hello');", "challengeSeed": "function reverseString(str) {n  return str;rn}" }, { "_id": "a302f7aae1aa3152a5b413bc", "name": "Factorialize a Number", </del> <ins> "challengeEntryPoint": "// Example inventory listsrnvar curInv = [rn    [21, 'Bowling Ball'],rn    [2, 'Dirty Sock'],rn    [1, 'Hair pin'],rn    [5, 'Microphone']rn];rnrnvar newInv = [rn    [2, 'Hair Pin'],rn    [3, 'Half-Eaten Apple'],rn    [67, 'Bowling Ball'],rn    [7, 'Toothpaste']rn];rnrninventory(curInv, newInv);", "challengeSeed": "function inventory(arr1, arr2) {n    // All inventory must be accounted for or you're fired!rn    return arr1;rn}", </ins> "tests": [ <del> "expect(factorialize(5)).to.be.a("Number");", "expect(factorialize(5)).to.equal(120);", "expect(factorialize(10)).to.equal(3628800);", "expect(factorialize(20)).to.equal(2432902008176640000);" ], "difficulty": "1", "description": [ "Return the factorial of the provided integer.", "If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.", "Factorials are often represented with the shorthand notation n!", "For example: 5! = 1 * 2 * 3 * 4 * 5 = 120f" ], "challengeSeed": "function factorialize(num) {n  return  num;rn}", "challengeEntryPoint": "factorialize(5);" }, { "_id": "a26cbbe9ad8655a977e1ceb5", "name": "Find the Longest Word in a String", "difficulty": "1", "description": [ "Return the length of the longest word in the provided sentence.", "Your response should be a number." ], "challengeEntryPoint": "findLongestWord('The quick brown fox jumped over the lazy dog');", "challengeSeed": "function findLongestWord(str) {n  return str.length;rn}", "tests": [ "expect(findLongestWord('The quick brown fox jumped over the lazy dog')).to.be.a('Number');", "expect(findLongestWord('The quick brown fox jumped over the lazy dog')).to.equal(6);", "expect(findLongestWord('May the force be with you')).to.equal(5);", "expect(findLongestWord('Google do a barrel roll')).to.equal(6);", "expect(findLongestWord('What is the average airspeed velocity of an unladen swallow')).to.equal(8);" ] }, { "_id": "a3566b1109230028080c9345", "name": "Sum All Numbers in a Range", "difficulty": "2", "description": [ "We'll pass you an array of two numbers. Return the sum those two numbers and all numbers between them.", "The lowest number will not always come first." ], "challengeEntryPoint": "sumAll([1, 4]);", "challengeSeed": "function sumAll(arr) {n  return(1);rn}", "tests": [ "expect(sumAll([1, 4])).to.be.a('Number');", "expect(sumAll([1, 4])).to.equal(10);", "expect(sumAll([4, 1])).to.equal(10);", "expect(sumAll([5, 10])).to.equal(45);", "expect(sumAll([10, 5])).to.equal(45);" ] }, { "_id": "ab6137d4e35944e21037b769", "name": "Title Case a Sentence", "difficulty": "1", "description": [ "Return the provided string with the first letter of each word capitalized.", "For the purpose of this exercise, you should also capitalize connecting words like 'the' and 'of'." ], "challengeEntryPoint": "titleCase("I'm a little tea pot")", "challengeSeed": "function titleCase(str) {n  return str;rn}", "tests": [ "expect(titleCase("I'm a little tea pot")).to.be.a('String');", "expect(titleCase("I'm a little tea pot")).to.equal("I'm A Little Tea Pot");", "expect(titleCase("sHoRt AnD sToUt")).to.equal("Short And Stout");", "expect(titleCase("HERE IS MY  HANDLE HERE IS MY SPOUT")).to.equal("Here Is My  Handle Here Is My Spout");" </del> <ins> "expect(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']])).to.be.a('array');", "assert.equal(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]).length, 6);", "assert.deepEqual(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair pin'], [5, 'Microphone']], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[88, 'Bowling Ball'], [2, 'Dirty Sock'], [3, 'Hair pin'], [3, 'Half-Eaten Apple'], [5, 'Microphone'], [7, 'Toothpaste']]);", "assert.deepEqual(inventory([[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair pin'], [5, 'Microphone']], []), [[21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair pin'], [5, 'Microphone']]);", "assert.deepEqual(inventory([], [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]), [[2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste']]);", "assert.deepEqual(inventory([[0, 'Bowling Ball'], [0, 'Dirty Sock'], [0, 'Hair pin'], [0, 'Microphone']], [[1, 'Hair Pin'], [1, 'Half-Eaten Apple'], [1, 'Bowling Ball'], [1, 'Toothpaste']]), [[1, 'Bowling Ball'], [1, 'Dirty Sock'], [1, 'Hair pin'], [1, 'Half-Eaten Apple'], [1, 'Microphone'], [1, 'Toothpaste']]);" </ins> ] } ]

.form-group label.col-sm-2.control-label.wrappable(for='description') description: .col-sm-10 <del> textarea#description.form-control(name="description", placeholder="Separate sentences by exactly one space only. Do not add in line breaks.") </del> <ins> textarea#description.form-control(name="description", rows=5, placeholder="Separate sentences by exactly one space only. Do not add in line breaks.") </ins> .form-group label.col-sm-2.control-label.wrappable(for='challengeSeed') challengeSeed: .col-sm-10


Question:
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!

"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.');",


Question:
The following code should pass, but won't because the <ptag is at the bottom, even though the challenge doesn't require it to be. Please refactor the tests to allow this situation to pass. Challenge has an issue. User Agent is: <codeMozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
I just arranged all the html elements, it accepted and changed 'View more ' to "Click her for " .......

"assert($("a").text().match(/catsphotos/gi), 'Your a element should have the anchor text of "cat photos"')", "assert($("p") && $("p").length > 2, 'Create a new p element around your a element.')", "assert($("a[href="http://www.freecatphotoapp.com"]").parent().is("p"), 'Your a element should be nested within your new p element.')",  "assert($("p").text().match(/^s*Viewsmores/gi), 'Your p element should have the text "View more " (with a space after it).')",   "assert($("a[href="http://www.freecatphotoapp.com"]").parent().text().match(/^s*Viewsmores/gi), 'Your p element should have the text "View more " (with a space after it).')",  "assert(!$("a").text().match(/Viewsmore/gi), 'Your a element should not have the text "View more".')", "assert(editor.match(/
/g) && editor.match(/<p/g) && editor.match(/
/g).length === editor.match(/<p/g).length, 'Make sure each of your p elements has a closing tag.')", "assert(editor.match(//g) && editor.match(/<a/g) && editor.match(//g).length === editor.match(/<a/g).length, 'Make sure each of your a elements has a closing tag.')"


Question:
Challenge text reads: "For example, your jQuery Playground h3 element has the parent element of , which itself has the parent body." However, the placeholder code doesn't have the <bodyelement. It should include this to allow the reader to follow along the chain of parent elements.
Looks like the seed code for that waypoint has the following, which would seem to fit that description, unless I'm misunderstanding.
I'm sorry, doesn't have the body element. The div element is there.
Apologies for my confusion. I've put in a PR to fix this.

"", "", "",  "
", "
jQuery Playground
", "
", "
", "
#left-well
", "
", "        <button class="btn btn-default target" id="target1">#target1</button>", "        <button class="btn btn-default target" id="target2">#target2</button>", "        <button class="btn btn-default target" id="target3">#target3</button>", "
", "
", "
", "
#right-well
", "
", "        <button class="btn btn-default target" id="target4">#target4</button>", "        <button class="btn btn-default target" id="target5">#target5</button>", "        <button class="btn btn-default target" id="target6">#target6</button>",   "", "
", "
jQuery Playground
", "
", "
", "
#left-well
", "
", "          <button class="btn btn-default target" id="target1">#target1</button>", "          <button class="btn btn-default target" id="target2">#target2</button>", "          <button class="btn btn-default target" id="target3">#target3</button>", "
", "
", "
", "
#right-well
", "
", "          <button class="btn btn-default target" id="target4">#target4</button>", "          <button class="btn btn-default target" id="target5">#target5</button>", "          <button class="btn btn-default target" id="target6">#target6</button>", "
",  "
", "
", "
",  "
"   ""  ], "type": "waypoint", "challengeType": 0


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2547.0 Safari/537.36</code. My following code successfully satisfies the criteria and all the tests, except one due to an inconsistency. ! The returned array will be sorted due to my method. The last test has no issue with my output being in sorted order, yet expects the output to retain the same order, as my output is not accepted. This is inconsistent, and it should also accept the answer regardless of its order. To bypass this I would have to implement a check to see if one of the given arrays is empty and if so, return the other as is, which is not part of the exercise's criteria.
Thanks guys!

"id": "a5de63ebea8dbee56860f4f2", "title": "Diff Two Arrays", "description": [  "Compare two arrays and return a new array with any items not found in both of the original arrays.",   "Compare two arrays and return a new array with any items only found in one of the original arrays.",  "Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code." ], "challengeSeed": [

], "tests": [ "assert(typeof(diff([1, 2, 3, 5], [1, 2, 3, 4, 5])) === "object", 'message: diff() should return an array.');",  "assert.deepEqual(diff(["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]), ["pink wool"], 'message: ["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"] should return ["pink wool"].');", "assert.includeMembers(diff(["andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]), ["diorite", "pink wool"], 'message: ["andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"] should return ["diorite", "pink wool"].');", "assert.deepEqual(diff(["andesite", "grass", "dirt", "dead shrub"], ["andesite", "grass", "dirt", "dead shrub"]), [], 'message: ["andesite", "grass", "dirt", "dead shrub"], ["andesite", "grass", "dirt", "dead shrub"] should return [].');", "assert.deepEqual(diff([1, 2, 3, 5], [1, 2, 3, 4, 5]), [4], 'message: [1, 2, 3, 5], [1, 2, 3, 4, 5] should return [4].');", "assert.includeMembers(diff([1, "calf", 3, "piglet"], [1, "calf", 3, 4]), ["piglet", 4], 'message: [1, "calf", 3, "piglet"], [1, "calf", 3, 4] should return ["piglet", 4].');", "assert.deepEqual(diff([], ["snuffleupagus", "cookie monster", "elmo"]), ["snuffleupagus", "cookie monster", "elmo"], 'message: [], ["snuffleupagus", "cookie monster", "elmo"] should return ["snuffleupagus", "cookie monster", "elmo"].');", "assert.includeMembers(diff([1, "calf", 3, "piglet"], [7, "filly"]), [1, "calf", 3, "piglet", 7, "filly"], 'message: [1, "calf", 3, "piglet"], [7, "filly"] should return [1, "calf", 3, "piglet", 7, "filly"].');"   "assert.sameMembers(diff(["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]), ["pink wool"], 'message: ["diorite", "andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"] should return ["pink wool"].');", "assert.sameMembers(diff(["andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]), ["diorite", "pink wool"], 'message: ["andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"] should return ["diorite", "pink wool"].');", "assert.sameMembers(diff(["andesite", "grass", "dirt", "dead shrub"], ["andesite", "grass", "dirt", "dead shrub"]), [], 'message: ["andesite", "grass", "dirt", "dead shrub"], ["andesite", "grass", "dirt", "dead shrub"] should return [].');", "assert.sameMembers(diff([1, 2, 3, 5], [1, 2, 3, 4, 5]), [4], 'message: [1, 2, 3, 5], [1, 2, 3, 4, 5] should return [4].');", "assert.sameMembers(diff([1, "calf", 3, "piglet"], [1, "calf", 3, 4]), ["piglet", 4], 'message: [1, "calf", 3, "piglet"], [1, "calf", 3, 4] should return ["piglet", 4].');", "assert.sameMembers(diff([], ["snuffleupagus", "cookie monster", "elmo"]), ["snuffleupagus", "cookie monster", "elmo"], 'message: [], ["snuffleupagus", "cookie monster", "elmo"] should return ["snuffleupagus", "cookie monster", "elmo"].');", "assert.sameMembers(diff([1, "calf", 3, "piglet"], [7, "filly"]), [1, "calf", 3, "piglet", 7, "filly"], 'message: [1, "calf", 3, "piglet"], [7, "filly"] should return [1, "calf", 3, "piglet", 7, "filly"].');"  ], "MDNlinks": [ "Comparison Operators",


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/ Firefox/41.0</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
Hi, The anchor a you are using should be <a href=""cat photos</arather than <a href=""cat photos </aYou're missing www in the url. Change it and it should work.
The tests are failing because you need to have your set to
, Thank you so much for your help! :+1:

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


Question: Since the code is included in the URL after every change, once the user has made any code changes the back button will not work as expected as the browser history gets filled up with entries pointing to the same page but with different code in the URL. !

if (!codeUri.enabled) { return null; } <del> location.hash = '?solution=' + codeUri.encode(encodeFcc(solution)); </del> <ins> if (history && typeof history.replaceState === 'function') { history.replaceState( history.state, null, '?solution=' + codeUri.encode(encodeFcc(solution)) ); } else { location.hash = '?solution=' + codeUri.encode(encodeFcc(solution)); } </ins> return solution; },


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 10.0; 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. !
Failed to state a problem, Closing. Feel free to re-open if you want to describe what is wrong.
The problem is the text being displayed on the highlighted test.
It could be that test is missing part

"tests": [ "assert(end("Bastian", "n") === true, 'message: end("Bastian", "n") should return true.');", "assert(end("Connor", "n") === false, 'message: end("Connor", "n") should return false.');",  "assert(end("Walking on water and developing software from a specification are easy if both are frozen", "specification") === false, '"Walking on water and developing software from a specification are easy if both are frozen", "specification") should return false.');",   "assert(end("Walking on water and developing software from a specification are easy if both are frozen", "specification") === false, 'message: end("Walking on water and developing software from a specification are easy if both are frozen", "specification") should return false.');",  "assert(end("He has to give me a new name", "name") === true, 'message: end("He has to give me a new name", "name") should return true.');", "assert(end("He has to give me a new name", "me") === true, 'message: end("He has to give me a new name", "me") should return true.');", "assert(end("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain") === false, 'message: end("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain") should return false.');"


Question:
I tried submitting a URL to camper news and somehow it got as a blank URL. The link I tried to add was but it just links to http:// I also can't edit or delete it, so I can't try fixing it.
Yup, I confirmed this with that URL. Did you make a change to disallow blank URLs that might affect this?
Nope. Didn't realize this was possible.
I see the mistake I made, I clicked "Submit" then typed in the url and hit "Submit" again. Then on the next page the title is auto-filled out but the URL is not copied over so I hit submit again, which let it be a blank URL. URL should copy from previous page into the new textbox.
I think I may have done the same thing.
For some reason the url value is not copied from the page URL. This requires some adjustments in the jade template. I will fix that.

.col-xs-12.col-md-1 label.control-label.control-label-story-submission(for='name') Link .col-xs-12.col-md-11 <del> input#story-url.form-control(placeholder='Paste your link here', name='Link') </del> <ins> input#story-url.form-control(name='Link', ng-model='submitStory.url', disabled="disabled", ng-init='submitStory.url="#{storyURL}"') </ins> .form-group .col-xs-12.col-md-1 label.control-label.control-label-story-submission(for='name') Title


Question:
Hi, Now, once the myCar instance is created it can be used like any other object and can have its properties accessed and modified the same way you would usually. For example: var myCar.turboType = "twin"; we don't need var it should be myCar.turboType = "twin";
Wow, I can't believe I missed this in the proofreading pass! Thanks for pointing this out!

"}", "Note that it is important to use the new keyword when calling a constructor. This is how javascript knows to create a new object and that all the references to this inside the constructor should be referring to this new object.", "Now, once the myCar instance is created it can be used like any other object and can have its properties accessed and modified the same way you would usually. For example:",  "var myCar.turboType = "twin";",   "myCar.turboType = "twin";",  "Our myCar variable now has a property turboType with a value of "twin".", "In the editor, use the Car constructor to create a new instance and assign it to myCar.", "Then give myCar a nickname property with a string value."


Question: The Waypoint description says: It seems to me that the first paragraph should be the last, i.e., the assignment was given before the Waypoint's description.

"id": "bad87fee1248bd9aedf08824", "title": "Add Different Margins to Each Side of an Element", "description": [  "Give the green box a margin of 40px on its top and left side, but only 20px on its bottom and right side.",  "Sometimes you will want to customize an element so that it has a different margin on each of its sides.",  "CSS allows you to control the margin of an element on all four sides with margin-top, margin-right, margin-bottom, and margin-left properties."   "CSS allows you to control the margin of an element on all four sides with margin-top, margin-right, margin-bottom, and margin-left properties.", "Give the green box a margin of 40px on its top and left side, but only 20px on its bottom and right side."  ], "tests": [ "assert($(".green-box").css("margin-top") === "40px", 'Your green-box class should give the top of elements 40px of margin.')",


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 6.1; Win64; x64; rv:44.0) Gecko/ Firefox/44.0</code. Please describe how to reproduce this issue, and include links to screenshots if possible. In the instructions for this exercise the second example reads, "Likewise, where([20,3,5], 19) should return 2 because it is less than 20 (index 2) and greater than 5 (index 1)." Based on the example result given, the example array should be [3,5,20].
After completing this exercise I realized that the second example may not be a typo, as the exercise requires the use of the sort() method to sort the given arrays in a numerically ascending order. So, rather than a typo, this example may just be confusing to those who have not completed the exercise.
It might make sense to add a clarifying statement like:

"title": "Where do I belong", "description": [ "Return the lowest index at which a value (second argument) should be inserted into an array (first argument) once it has been sorted.",  "For example, where([1,2,3,4], 1.5) should return 1 because it is greater than 1 (index 0), but less than 2 (index 1).", "Likewise, where([20,3,5], 19) should return 2 because it is less than 20 (index 2) and greater than 5 (index 1).",   "For example, where([1,2,3,4], 1.5) should return 1 because it is greater than 1 (index 0), but less than 2 (index 1).", "Likewise, where([20,3,5], 19) should return 2 because once the array has been sorted it will look like [3,5,20] and 19 is less than 20 (index 2) and greater than 5 (index 1).",  "Remember to use Read-Search-Ask if you get stuck. Write your own code." ], "challengeSeed": [


Question: Says: Replace your a element's href attribute with a #, also known as a hash symbol, to turn it into a dead link. I think it is kind of unclear - would potentially be better as "Replace the value of your a element's...." Tripped me up at first. Submitting a pull request for the change

"description": [ "Sometimes you want to add a elements to your website before you know where they will link.", "This is also handy when you're changing the behavior of a link using jQuery, which we'll learn about later.",  "Replace your a element's href attribute with a #, also known as a hash symbol, to turn it into a dead link."   "Replace the value of your a element's href attribute with a #, also known as a hash symbol, to turn it into a dead link."  ], "tests": [ "assert($("a").attr("href") === "#", 'Your a element should be a dead link with a href attribute set to "#".')"


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Macintosh; Intel Mac OS X 1075) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
The editor is highlighting your code to let you know something doesn't look right, which in this case is that you open your with uppercase and close it with lowercase. ! However, despite this being bad practice it is valid markup and should pass. I am putting in a PR to make the regular expressions case insensitive now.
Okay, thank you for the response. Will make sure to get into the habit of being deliberate with casing. Thank you.

"tests": [ "assert($("ul").length > 0, 'Create a ul element.')", "assert($("ul li").length > 2, 'You should have three li elements within your ul element.')",  "assert(editor.match(/
/g) && editor.match(/<ul/g) && editor.match(/
/g).length === editor.match(/<ul/g).length, 'Make sure your ul element has a closing tag.')", "assert(editor.match(/
/g) && editor.match(/
]/g) && editor.match(/
/g).length === editor.match(/
]/g).length, 'Make sure your li elements have closing tags.')"   "assert(editor.match(/
/gi) && editor.match(/<ul/gi) && editor.match(/
/gi).length === editor.match(/<ul/gi).length, 'Make sure your ul element has a closing tag.')", "assert(editor.match(/
/gi) && editor.match(/
]/gi) && editor.match(/
/gi).length === editor.match(/
]/gi).length, 'Make sure your li elements have closing tags.')"  ], "challengeSeed": [ "<link href="http://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">",


Question: here "giving it a i element with the classes fa and fa-thumbs-up." shoud be "an i" and not "a i" 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.86 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:

"Font Awesome is a convenient library of icons. These icons are vector graphics, stored in the .svg file format. These icons are treated just like fonts. You can specify their size using pixels, and they will assume the font size of their parent HTML elements.", "The i element was originally used to make other elements italic, but is now commonly used for icons. You add the Font Awesome classes to the i element to turn it into an icon, for example:", "<i class="fa fa-info-circle"></i>",  "Use Font Awesome to add a thumbs-up icon to your like button by giving it a i element with the classes fa and fa-thumbs-up."   "Use Font Awesome to add a thumbs-up icon to your like button by giving it an i element with the classes fa and fa-thumbs-up."  ], "tests": [ "assert($("i").hasClass("fa fa-thumbs-up"), 'Add an i element with the classes fa and fa-thumbs-up.')",


Question:
Challenge [Bonfire: Validate US Telephone Numbers] This actually returns false as the test says it should, but the test does not pass. The rest of the tests pass in my actual telephoneCheck() function.
Thanks for the report! It looks like that test was actually testing against the string rather than like the message said. I have submitted a PR to correct this.
ok good so i'm not insane. just mental. +1:

"assert(telephoneCheck("(555)555-5555") === true, 'message: telephoneCheck("(555)555-5555") should return true.');", "assert(telephoneCheck("1(555)555-5555") === true, 'message: telephoneCheck("1(555)555-5555") should return true.');", "assert(telephoneCheck("1 555 555 5555") === true, 'message: telephoneCheck("1 555 555 5555") should return true.');",  "assert(telephoneCheck("555-555-5555") === true, 'message: telephoneCheck("555-555-5555") should return true.');",  "assert(telephoneCheck("1 456 789 4444") === true, 'message: telephoneCheck("1 456 789 4444") should return true.');", "assert(telephoneCheck("123**&!!asdf#") === false, 'message: telephoneCheck("123**&!!asdf#") should return false.');", "assert(telephoneCheck("55555555") === false, 'message: telephoneCheck("55555555") should return false.');",

"assert(telephoneCheck("(275)76227382") === false, 'message: telephoneCheck("(275)76227382") should return false.');", "assert(telephoneCheck("2(757)6227382") === false, 'message: telephoneCheck("2(757)6227382") should return false.');", "assert(telephoneCheck("2(757)622-7382") === false, 'message: telephoneCheck("2(757)622-7382") should return false.');",  "assert(telephoneCheck("555)-555-5555") === false, 'message: telephoneCheck("555)555-5555") should return false.');",   "assert(telephoneCheck("555)-555-5555") === false, 'message: telephoneCheck("555)-555-5555") should return false.');",  "assert(telephoneCheck("(555-555-5555") === false, 'message: telephoneCheck("(555-555-5555") should return false.');" ], "challengeSeed": [


Question:
Ever since we the last test case to , there have been questions about it. We either need to add several additional test cases which have a later number which does not meet the test criteria retained, or alter earlier test cases to have that same condition. Relevant Text (Emphasis ): < Drop the elements of an array (first argument), starting from the front, until the predicate (second argument) returns true. Existing Test Case: We do believe that this "early exit" solution is important and should be supported by test cases.
Ref: for an example of the sort of issue we see.
I'll do this. Note I've never actually made a PR before, anywhere.

"drop([1, 2, 3], function(n) {return n < 3; });" ], "tests": [  "assert.deepEqual(drop([1, 2, 3, 4], function(n) {return n>= 3;}), [3, 4], 'message: drop([1, 2, 3, 4], function(n) {return n >= 3;}) should return [3, 4].');",   "assert.deepEqual(drop([1, 2, 3, 4], function(n) {return n >= 3;}), [3, 4], 'message: drop([1, 2, 3, 4], function(n) {return n >= 3;}) should return [3, 4].');", "assert.deepEqual(drop([0, 1, 0, 1], function(n) {return n === 1;}), [1, 0, 1], 'message: drop([0, 1, 0, 1], function(n) {return n === 1;}) should return [1, 0, 1].');",  "assert.deepEqual(drop([1, 2, 3], function(n) {return n > 0;}), [1, 2, 3], 'message: drop([1, 2, 3], function(n) {return n > 0;}) should return [1, 2, 3].');", "assert.deepEqual(drop([1, 2, 3, 4], function(n) {return n > 5;}), [], 'message: drop([1, 2, 3, 4], function(n) {return n > 5;}) should return [].');", "assert.deepEqual(drop([1, 2, 3, 7, 4], function(n) {return n > 3;}), [7, 4], 'message: drop([1, 2, 3, 7, 4], function(n) {return n > 3;}) should return [7, 4].');",


Question:
I the "thumbs-up" icon to the "Info" button and I still passed the challenge. I don't know if this was intended to help. Cheers! :D Challenge has an issue. User Agent is: <codeMozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/601.2.7 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.7</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
Thanks for the report. I've put in a PR that will check what the parent element of your icon is.
Thanks for taking the time to fix it! :D Cheers!

], "tests": [ "assert($("i").hasClass("fa fa-thumbs-up"), 'Add an i element with the classes fa and fa-thumbs-up.')",  "assert($("i.fa-thumbs-up").parent().text().match(/Like/gi), 'Your fa-thumbs-up icon should be located within the Like button.')",  "assert($("button").children("i").length > 0, 'Nest your i element within your button element.')", "assert(editor.match(//g), 'Make sure your i element has a closing tag.')" ],


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

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


Question:
Anywhere from 1000px width to when the UI goes into responsive mode the numbers on the check list move into it's respective check box. Image posted bellow <img width="1109" alt="screen shot 2015-12-17 at 9 08 15 pm" src=""
Confirmed, although this is a pretty marginal corner case. There is maybe a 200px wide zone where there is overlap.
It happens quite a bit for me. Regardless I just want a softball for my first issue :) , Rex Schrader wrote: * |
This really isn't the issue with new UI (width < 760px). However, now checkboxes are awkwardly too far. !

extends ../layout-wide block content .row <del> .col-md-4.bonfire-top </del> <ins> .col-md-4 </ins> h4.text-center= name hr ol for step, index in description .row.checklist-element(id="#{dashedName + index}") <del> .col-xs-3.col-sm-1.col-md-2.padded-ionic-icon.text-center </del> <ins> .col-xs-2.col-sm-1.col-md-2.padded-ionic-icon.text-right </ins> input(type='checkbox' class='challenge-list-checkbox') <del> .col-xs-9.col-sm-11.col-md-10 </del> <ins> .col-xs-10.col-sm-11.col-md-10 </ins> li.step-text.wrappable!= step .col-xs-12.col-sm-12.col-md-8 .embed-responsive.embed-responsive-16by9


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
you need a closing brace after the quoted class.
thanx

h4.negative-10.text-nowrap Community Builder img.profile-image(src='https://s3.amazonaws.com/freecodecamp/branden-byers.jpg' alt="Branden Byers picture") h4.text-nowrap Madison, Wisconsin <del> p.negative-10 "I'm a massage therapist and Stay-at-home-dad. I learned Hypercard, then Rails, but now I feel at home with JavaScript." </del> <ins> p.negative-10 "Cookbook author and stay-at-home-dad. Started coding as a kid, got distracted, but now I'm back in full JavaScript force!" </ins> .col-xs-12.col-sm-4.col-md-3.team-member h3.negative-10.text-nowrap Michael Johnson h4.negative-10.text-nowrap Nonprofit Coordinator

h4.negative-10.text-nowrap Live Content Manager img.profile-image(src='https://s3.amazonaws.com/freecodecamp/jason-rueckert.jpg' alt="Jason Rueckert's picture") h4.text-nowrap Seattle, Washington <del> p.negative-10 "My high school job was testing basketball shoes for Nike. I learned code to work smarter, not harder. I have no thyroid." </del>  No newline at end of file <ins> p.negative-10 "My high school job was testing basketball shoes for Nike. I learned code to work smarter, not harder. I have no thyroid." </ins>


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
you need a closing brace after the quoted class.
thanx

"Return the provided string with the first letter of each word capitalized.", "For the purpose of this exercise, you should also capitalize connecting words like 'the' and 'of'." ], <del> "challengeEntryPoint": "titleCase("I'm a little tea pot")", </del> <ins> "challengeEntryPoint": "titleCase("I'm a little tea pot");", </ins> "challengeSeed": "function titleCase(str) {n  return str;rn}", "tests": [ "expect(titleCase("I'm a little tea pot")).to.be.a('String');",


Question:
Return statement Issue: JS Line 3: Return statement text should be "Greater than 10" instead of "10 or bigger" Challenge Link : Browser Version : v47.0.2526.106 (64-bit) Operating System Version : Mac OS X 10.11.2 Steps to reproduce: to the above challenge link and check the text. (Optional)Read/Run the below test case in the above waypoint challenge page myTest(10) should return "Between 5 and 10" Screenshot 1: ! Screenshot 2: !
:+1: yes "10 or bigger" means
This same waypoint has some more minor bugs associated with it (in the test cases). They are : To save PR Reviewer time, I am merging this very minor issues in one and creating one commit to fix this.

"challengeSeed": [ "function myTest(val) {", "  if(val > 10) {", <del> "    return "10 or Bigger";", </del> <ins> "    return "Greater than 10";", </ins> "  }", "  ", "  if(val < 5) {",

"" ], "solutions": [  "function myTest(val) {n  if(val > 10) {n    return "10 or Bigger";n  } else if(val < 5) {n    return "Smaller than 5";n  } else {n    return "Between 5 and 10";n  }n}"   "function myTest(val) {n  if(val > 10) {n    return "Greater than 10";n  } else if(val < 5) {n    return "Smaller than 5";n  } else {n    return "Between 5 and 10";n  }n}"  ], "tests": [ "assert(code.match(/else/g).length > 1, 'message: You should have at least two else statements');", "assert(code.match(/if/g).length > 1, 'message: You should have at least two if statements');",  "assert(myTest(0) === "Smaller than 5", 'message: myTest(4) should return "Smaller than 5"');", "assert(myTest(5) === "Between 5 and 10", 'message: myTest(5) should return "Smaller than 5"');",   "assert(myTest(0) === "Smaller than 5", 'message: myTest(0) should return "Smaller than 5"');", "assert(myTest(5) === "Between 5 and 10", 'message: myTest(5) should return "Between 5 and 10"');",  "assert(myTest(7) === "Between 5 and 10", 'message: myTest(7) should return "Between 5 and 10"');", "assert(myTest(10) === "Between 5 and 10", 'message: myTest(10) should return "Between 5 and 10"');",  "assert(myTest(12) === "10 or Bigger", 'message: myTest(12) should return "10 or Bigger"');"   "assert(myTest(12) === "Greater than 10", 'message: myTest(12) should return "Greater than 10"');"  ], "type": "waypoint", "challengeType": "1",


Question:
With the the new year now recently 2016... The test still stays: friendly(["2015-07-01", "2015-07-04"]) should return ["July 1st","4th"]. But shouldn't both years be ommited only if first year is the current year (which is 2016, not 2015). However, the test also says: friendly(["2016-03-01", "2016-05-05"]) should return ["March 1st","May 5th"] which implies it is following the rule that the current year is 2016. Am I missing something here?
This is for Bonfire: Friendly Dates.
Sounds like we need to update the tests on this one . . . or maybe make them more generic.
I incremented the year in every test except the last one in , some of the tests didn't need to be updated but I did it anyways. That should be enough for passing the tests during 2016, but I think those tests could be more generic
I think this issue can be closed now.


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. conditions are not displayed ... not abele to continue. !
It does still pass if the correct code is provided. Your code uses the variable named when the instructions ask for a variable called . For testers: Able to reproduce on Attempting to run any code, except passing code, does not make the tests appear as it has with previous similar issues. After successful code is run the tests appear, but will disappear again with a hard refresh.
ou that's right, i passed, but i only see conditions after i passed... tanks sludge256

"" ], "tail": [ <del> "(function(t) { if(typeof t !== 'undefined') { return "Total = " + t; } else { return "Total is undefined";}})(total);" </del> <ins> "(function(){if(typeof total !== 'undefined') { return "total = " + total; } else { return "total is undefined";}})()" </ins> ], "solutions": [ "var myArr = [ 2, 3, 4, 5, 6];nvar total = 0;nnfor (var i = 0; i < myArr.length; i++) {n  total += myArr[i];n}"


Question:
I really do like the SideCar (I'm assuming that's what your using) Map menu! It gives really quick access to previous challenges. It would cool if the "collapse all challenges" area was fixed to top and everything would slide under it. That way, users wouldn't have to scroll all the way up or down if they're looking for something specific - they would just collapse everything and go to the specific component they're looking for.
I agree. Totally makes sense to have it fixed to the top somehow.
I'm going to start working on this now, should have a PR open shortly.

* based off of https://github.com/gitterHQ/sidecar * license: MIT */ <ins> .map { display: flex; flex-direction: column; max-height: 90vh; } </ins> .map-aside { z-index: 20000;

z-index: 100; } <ins> .map-fixed-header { background: white; z-index: 1; flex: 1; padding-bottom: 25px; } .map-accordion { flex: 9; overflow-y: auto; } </ins> .map-aside-action-item { display: flex; /* main axis */

}); if (lastChallenge.length) { lastChallenge = lastChallenge[lastChallenge.length - 1]; <del> var scrollTo = $(lastChallenge).offset().top - 250; $('html, body').scrollTop(scrollTo); </del> <ins> var scrollTo = $(lastChallenge).offset().top - 400; $('.map-accordion').scrollTop(scrollTo); </ins> } }

extends ../layout-wide block content <del> .text-center h1 Challenge Map p Required challenges are marked with a * .row .col-xs-10.col-xs-offset-1.col-sm-6.col-sm-offset-3.col-md-4.col-md-offset-4 .btn.btn-primary.btn-block.active#showAll Collapse all challenges hr #accordion for superBlock, index in superBlocks h2 i.fa.fa-caret-down |   a(data-toggle='collapse', data-parent='#accordion', href='#collapse'+superBlock.name.split(' ').join('-')) | #{superBlock.name} div.margin-left-10(id = 'collapse'+superBlock.name.split(' ').join('-') class = "collapse in map-collapse no-transition") #nested for challengeBlock in superBlock.blocks h3 i.fa.fa-caret-down |   a(data-toggle='collapse', data-parent='#nested', href='#nested-collapse'+challengeBlock.name.replace(/(W)/gi, '').split(' ').join('-')) | #{challengeBlock.name} (#{challengeBlock.time}) div.margin-left-10(id = "nested-collapse"+challengeBlock.name.replace(/W/gi, '').split(' ').join('-') class = "collapse in map-collapse no-transition") .button-spacer for challenge in challengeBlock.challenges if challenge.completed p.text-primary.ion-checkmark-circled.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")     a(href="/challenges/#{challenge.dashedName}" target='_parent') = challenge.title span.sr-only= " Complete" else if challenge.isRequired p.slightly-faded.ion-ios-circle-outline.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")     a(name="#{challenge.dashedName}" target='_parent' href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '') span= challenge.title span.sr-only= " Incomplete" if challenge.markNew span.text-success.small     strong em New if challengeBlock.isComingSoon span.text-success.small     strong em Coming Soon span.text-primary     strong * else p.slightly-faded.ion-ios-circle-outline.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")     a(name="#{challenge.dashedName}" target='_parent' href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '') span= challenge.title span.sr-only= " Incomplete" if challenge.markNew span.text-success.small     strong em New if challengeBlock.isComingSoon span.text-success.small     strong em Coming Soon .spacer </del> <ins> .map .map-fixed-header.text-center h1 Challenge Map p Required challenges are marked with a * .row .col-xs-10.col-xs-offset-1.col-sm-6.col-sm-offset-3.col-md-4.col-md-offset-4 .btn.btn-primary.btn-block.active#showAll Collapse all challenges hr #accordion.map-accordion for superBlock, index in superBlocks h2 i.fa.fa-caret-down |   a(data-toggle='collapse', data-parent='#accordion', href='#collapse'+superBlock.name.split(' ').join('-')) | #{superBlock.name} div.margin-left-10(id = 'collapse'+superBlock.name.split(' ').join('-') class = "collapse in map-collapse no-transition") #nested for challengeBlock in superBlock.blocks h3 i.fa.fa-caret-down |   a(data-toggle='collapse', data-parent='#nested', href='#nested-collapse'+challengeBlock.name.replace(/(W)/gi, '').split(' ').join('-')) | #{challengeBlock.name} (#{challengeBlock.time}) div.margin-left-10(id = "nested-collapse"+challengeBlock.name.replace(/W/gi, '').split(' ').join('-') class = "collapse in map-collapse no-transition") .button-spacer for challenge in challengeBlock.challenges if challenge.completed p.text-primary.ion-checkmark-circled.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")     a(href="/challenges/#{challenge.dashedName}" target='_parent') = challenge.title span.sr-only= " Complete" else if challenge.isRequired p.slightly-faded.ion-ios-circle-outline.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")     a(name="#{challenge.dashedName}" target='_parent' href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '') span= challenge.title span.sr-only= " Incomplete" if challenge.markNew span.text-success.small     strong em New if challengeBlock.isComingSoon span.text-success.small     strong em Coming Soon span.text-primary     strong * else p.slightly-faded.ion-ios-circle-outline.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")     a(name="#{challenge.dashedName}" target='_parent' href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '') span= challenge.title span.sr-only= " Incomplete" if challenge.markNew span.text-success.small     strong em New if challengeBlock.isComingSoon span.text-success.small     strong em Coming Soon .spacer </ins>


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (X11; Linux x8664) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code: I was asked to use "the first few words of this kitty ipsum text". I copied the first two words, but it failed validation. I tried copying the first three words instead, and that worked. Google defines 'a few' as "a small number of". synonyms: a small number, a handful, one or two, a couple, two or three_. Edit: it appears that copying 3 or more words works, but copying just 2 of them doesn't.
This isn't bike-shedding. It is rejecting valid solutions very early on in the first lesson, when it is important not to discourage people. Are reports like this not wanted?
Just discovered this. Yeah, "first few" should be "first three". Why have the ambiguity?
Having worked through most of the rest of the programming exercises I wonder if the aim is to get programmers used to working from low-quality specifications. Even if that is the case, I think having a poorly specified problem this early on runs too high a risk of putting people off forever.
That's certainly an interesting idea. I could imagine some sort of course where you must sort through (intentionally) ambiguous and unintelligible requirements to potentially satisfy an irate product manager or customer with unrealistic deadlines. Call it "Worse-case scenario" training :D
Call it: Situation Normal training.
Yes. FreeCodeCamp(now with Situation Normal Training)

"
Hello Paragraph
" ], "tests": [  "assert.isTrue((/Kitty(s)+ipsum(s)+dolor/gi).test($("p").text()), 'message: Your p element should contain the first few words of the provided kitty ipsum text.');"   "assert.isTrue((/Kitty(s)+ipsum/gi).test($("p").text()), 'message: Your p element should contain the first few words of the provided kitty ipsum text.');"  ], "challengeType": 0, "nameEs": "Llena espacios con texto de relleno",


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. My code:
Hmm, I can't repro this. Do you have your browser zoomed in at all? Have you tried any other browsers?
Hey Itegman, Thanks for the response, yes my browser was size at 75%. After setting zoom to 100% the challenged passed.
Closing as a duplicate of . We've got a PR up now that will add a warning about needing to be 100% zoom for this particular challenge.

"Font size is controlled by the font-size CSS property, like this:", "
h1 {
  font-size: 30px;
}
", "Create a second p element with the following kitty ipsum text: Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.",  "Inside the same <style> tag that we created for your red-text class, set the font-size of all p elements to 16 pixels (16px)."   "Inside the same <style> tag that we created for your red-text class, set the font-size of all p elements to 16 pixels (16px).", "Note
Due to browser implementation differences, you may need to be at 100% zoom to pass the tests on this challenge."  ], "challengeSeed": [ "

"assert($("p").length > 1, 'message: You need 2 p elements with Kitty Ipsum text.');", "assert(code.match(/
/g) && code.match(/
/g).length === code.match(/<p/g).length, 'message: Make sure each of your p elements has a closing tag.');", "assert.isTrue((/Purrs+jumps+eat/gi).test($("p").text()), 'message: Your p element should contain the first few words of the provided additional kitty ipsum text.');",  "assert(Number.parseInt($("p:eq(0)").css("font-size"), 10) > 15 && Number.parseInt($("p:eq(1)").css("font-size"), 10) > 15, 'message: Give elements with the p tag a font-size of 16px.')"   "assert(Number.parseInt($("p:eq(0)").css("font-size"), 10) > 15 && Number.parseInt($("p:eq(1)").css("font-size"), 10) > 15, 'message: Give elements with the p tag a font-size of 16px. Browser and Text zoom should be at 100%.');"  ], "challengeType": 0, "nameEs": "Cambia el tamaño de fuente de un elemento.",

"CSS has a property called width that controls an element's width. Just like with fonts, we'll use px (pixels) to specify the image's width.", "For example, if we wanted to create a CSS class called larger-image that gave HTML elements a width of 500 pixels, we'd use:", "
<style>
  .larger-image {
    width: 500px;
  }
</style>
",  "Create a class called smaller-image and use it to resize the image so that it's only 100 pixels wide."   "Create a class called smaller-image and use it to resize the image so that it's only 100 pixels wide.", "Note
Due to browser implementation differences, you may need to be at 100% zoom to pass the tests on this challenge."  ], "challengeSeed": [ "<link href="http://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">",

], "tests": [ "assert($("img").hasClass("smaller-image"), 'message: Your img element should have the class smaller-image.');",  "assert($("img").width() === 100, 'message: Your image should be 100 pixels wide.');"   "assert($("img").width() === 100, 'message: Your image should be 100 pixels wide. Browser zoom should be at 100%.');"  ], "challengeType": 0, "nameEs": "Da tamaño a tus imágenes",


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

"nameEs": "Aprende como funciona Free Code Camp", "descriptionEs": [ [ <del> "http://i.imgur.com/RlEk2IF.jpg", </del> <ins> "http://i.imgur.com/6ibIavQ.jpg", </ins> "Una imagen de los 4 beneficios de Free Code Camp: Conéctate, Aprende JavaScript, Construye tu  Portafolio, Ayuda organizaciones sin ánimo de lucro", "Bienvenido a Free Code Camp. Somos una comunidad de código abierto formada por personas ocupadas quienes aprenden a programar y ayudan a organizaciones sin ánimo de lucro.", ""

"" ], [ <del> "http://i.imgur.com/dLx8nrg.jpg", "Una ilustración mostrando que aprenderás HTML5, CSS3, JavaScript, Bases de Datos, Git, Node.js, Angular.js y Agile.", "Durante la primera mitad de Free Code Camp, aprenderás tecnologías como HTML5, Node.js y Bases de Datos.", </del> <ins> "http://i.imgur.com/vLNso6h.jpg", "Una ilustración mostrando que aprenderás HTML5, CSS3, JavaScript, Bases de Datos, Git, Node.js, react y D3.", "Tenemos cientos de desafíos de programación opcionales que te enseñarán las tecnologías fundamentales para el desarrollo web como HTML5, Node.js y bases de datos.", </ins> "" ], [ <ins> "http://i.imgur.com/UVB9hxp.jpg", "Una foto de un campista en un café construyendo proyectos con Free Code Camp.", "Creemos que los humanos aprender mejor haciendo.  Así que en realidad emplearás la mayoría de tu tiempo construyendo proyectos.  Te daremos una lista de especificaciones (historias de usuario ágiles), y te las ingeniarás para construir aplicaciones que cumplan esas especificaciones.", "" ], [ "http://i.imgur.com/pbW7K5S.jpgk", "Una imagen de los tiempos de nuestras certificaciones para desarrollo de interfaces, desarrollo al lado del servidor y visualización de datos (400 horas cada uno), para nuestros proyectos sin ánimo de lucro (800 horas) y preparación para entrevistas (80 horas) que dan un total de 2,080 horas e experiencia programando.", "Nuestro currículo se divide en 4 certificaciones.  Estas certificaciones están estandarizadas, y son verificables al instante por sus clientes como trabajador independiente y por sus futuros empleadores.  Tal como todo lo demás en Free Code Camp, estas certificaciones son gratuitas.  Recomendamos hacerlas en orden, pero usted es libre de saltar de una a otra.  Las primeras tres certificaciones requieren 400 horas cada una, y la certificación final requiere 800 horas, e involucra construir proyectos de la vida real para organizaciones sin ánimo de lucro.", "" ], [ "http://i.imgur.com/k8btNUB.jpg", "Una imagen de nuestro Certificado de Desarrollo de Interfaces", "Para obtener nuestra certificación verificada de Desarrollo de Interfaces, construirás 10 proyectos usando HTML, CSS, jQuery y JavaScript.", "" ], [ </ins> "http://i.imgur.com/Et3iD74.jpg", <del> "Una imagen de nuestro Certificado de Desarrollo Front End", "Tras unas 400 horas en Free Code Camp, obtendrás tu Certificación de Desarrollo Front End verificada.", </del> <ins> "Una imagen de nuestro Certificado de Visualización de Datos", "Para obtener nuestra certificación en Visualización de Datos, construirás 10 proyectos usando React, Sass y D3.js.", </ins> "" ], [ <del> "http://i.imgur.com/sKYQhdG.jpg", "Una imagen de nuestro Certificado de Desarrollo Full Stack", "Tras unas 400 horas en Free Code Camp, obtendrás tu Certificación de Desarrollo Full Stack verificada.", </del> <ins> "http://i.imgur.com/8v3t84p.jpg", "Una imagen de nuestro Certificado de Desarrollo al Lado del Servidor", "Para obtener nuestro Certificado de Desarrollo al Lado del Servidor, construirás 10 proyectos empleando Node.js, Express y MongoDB. Usarás Git y Heroku para desplegarlos en la nube.", </ins> "" ], [ "http://i.imgur.com/yXyxbDd.jpg", "Una imagen de nuestro directorio de organizaciones sin ánimo de lucro.", <del> "Entonces construirás varios proyectos reales para organizaciones sin ánimo de lucro. Para cuando termines, tendrás un portafolio de aplicaciones reales que las personas usan a diario.", </del> <ins> "Después de completar todos los tres certificados, harás equipo con otro campista y usarás metodologías de desarrollo ágil para construir dos proyectos de la vida real para organizaciones sin ánimo de lucro. También añadirás funcionalidad a dos proyectos de fuentes legadas de organizaciones sin ánimo de lucro.  Cuando termines esto, tendrás un portafolio de aplicaciones reales que la gente usa a diario. ", "" ], [ "http://i.imgur.com/PDGQ9ZM.jpg", "Una imagen de nuestros campistas construyendo proyectos juntos en un café en Seoul.", "Si completas todas las 2,080 horas de desafíos y proyectos, obtendrás un Certificado de Desarrollo de Pila Completa.  Te ofreceremos gratuitamente una práctica en entrevistas para desarrolladores. Incluso ofrecemos un directorio de trabajos donde los empleadores contratan específicamente campistas que han recibido certificaciones de Free Code Camp.", </ins> "" ] ]

], [ "http://i.imgur.com/FEImaEN.gif", <del> "Una imagen mostrandote como pulsar en el enlace inferior para ir a GitHub, llenar los campos necesarios y enviarlos.", </del> <ins> "Una imagen mostrándote como pulsar en el enlace inferior para ir a GitHub, llenar los campos necesarios y enviarlos.", </ins> "Crea una cuenta en GitHub. Asegúrate de usar tu dirección de correo real - GitHub mantendrá esto en privado.", "https://github.com/join" ], [ "http://i.imgur.com/ALN6zPK.gif", <del> "Un gif mostrandote como pulsar en la imagen de perfil en la esquina superior derecha de GitHub. Sube una foto tuya o continuaras usando la imagen de pixeles generada automáticamente. Entonces llena los campos restantes y haz clic en envíar.", "En la esquina superior derecha pulsa sobre la imagen de pixeles, entonces selecciona configuraciones. Sube una imagen tuya. Una foto de tu cara es mejor. Así es como tus compañeros campistas te verán en nuestras salas de chat, así que toma tu mejor ángulo. Puedes añadir tu ciudad y tu nombre si lo deseas.", </del> <ins> "Un gif mostrándote como pulsar en la imagen de perfil en la esquina superior derecha de GitHub. Sube una foto tuya o continuaras usando la imagen de píxeles generada automáticamente. Entonces llena los campos restantes y haz clic en enviar.", "En la esquina superior derecha pulsa sobre la imagen de píxeles, entonces selecciona configuraciones. Sube una imagen tuya. Una foto de tu cara es mejor. Así es como tus compañeros campistas te verán en nuestras salas de chat, así que toma tu mejor ángulo. Puedes añadir tu ciudad y tu nombre si lo deseas.", </ins> "https://github.com/settings/profile" ], [ "http://i.imgur.com/pYk0wOk.gif", <del> "Un gif mostrandote como puedes dar una estrella a un repositorio de GitHub.", </del> <ins> "Un gif mostrándote como puedes dar una estrella a un repositorio de GitHub.", </ins> "Ve al repositorio de código libre de Free Code Camp y dale una "estrella". Las "estrellas" son el equivalente en GitHub de los "me gusta".", "https://github.com/freecodecamp/freecodecamp" ], [ "http://i.imgur.com/zwYPeQT.gif", <del> "Un gif mostrandote como pulsar en el enlace inferior para ir a nuestra sala de chat y pulsar en el botón de "iniciar sesión con GitHub". Entonces puedes pulsar en el próximo campo de texto y escribir un mensaje a tus compañeros campistas.", "Ahora que tienes una cuenta de GitHub, puedes unirte a nuestro chat principal al iniciar sesión con GitHub. Presentate diciendo "Hello world!". Cuéntales a los tus compañeros campistas como encontraste Free Code Camp. Además cuéntanos porque deseas aprender a programar.", </del> <ins> "Un gif mostrándote como pulsar en el enlace inferior para ir a nuestra sala de chat y pulsar en el botón de "iniciar sesión con GitHub". Entonces puedes pulsar en el próximo campo de texto y escribir un mensaje a tus compañeros campistas.", "Ahora que tienes una cuenta de GitHub, puedes unirte a nuestro chat principal al iniciar sesión con GitHub. Preséntate diciendo "Hello world!". Cuéntales a los tus compañeros campistas como encontraste Free Code Camp. Además cuéntanos porque deseas aprender a programar.", </ins> "https://gitter.im/FreeCodeCamp/FreeCodeCamp" ], [ "http://i.imgur.com/Ecs5XAd.gif", <del> "Un gif mostrandote como puedes pulsar en el botón de configuraciones en la esquina superior derecha y modificar tus configuraciones de notificaciones.", </del> <ins> "Un gif mostrándote como puedes pulsar en el botón de configuraciones en la esquina superior derecha y modificar tus configuraciones de notificaciones.", </ins> "Nuestras salas de chat son extremadamente activas. Deberías cambiar tus configuraciones para ser notificado únicamente si alguien te menciona.", "" ], [ "http://i.imgur.com/T0bGJPe.gif", <del> "Un gif mostrandote como puedes pulsar en la imagen de perfil de un usuario para iniciar una conversación privada con ese usuario.", </del> <ins> "Un gif mostrándote como puedes pulsar en la imagen de perfil de un usuario para iniciar una conversación privada con ese usuario.", </ins> "Por favor nota que todas nuestras salas de chat son visibles para el público. Si necesitas compartir información privada, como una dirección de correo o un número de teléfono, hazlo en un mensaje privado.", "" ], [ "http://i.imgur.com/vDTMJSh.gif", <del> "Un gif mostrandote que puedes cambiar entre desafíos y nuestras salas de chat.", </del> <ins> "Un gif mostrándote que puedes cambiar entre desafíos y nuestras salas de chat.", </ins> "Mantén nuestra sala de chat abierta mientras trabajas en nuestros desafíos. De esta manera, puedes pedir ayuda si quedas atascado. Además puedes socializar con otros campistas cuando quieras tomar un descanso.", "" ], [ "http://i.imgur.com/WvQvNGN.gif", <del> "Un gif mostrandote como puedes pulsar abajo para descargar una aplicación de chat nativa para tu computadora.", </del> <ins> "Un gif mostrándote como puedes pulsar abajo para descargar una aplicación de chat nativa para tu computadora.", </ins> "También puedes descargar la aplicación de chat para tu computadora o teléfono móvil.", "https://gitter.im/apps" ]

"descriptionEs": [ [ "http://i.imgur.com/tP2ccTE.gif", <del> "Un gif mostrandore como puedes pulsar en tu imagen de perfil en la esquina superior derecha conectar tu portafolio y GitHub.", "Dale un vistazo de tu portafolio de código. Da click en tu imagen en la esquina superior derecha. Para activar tu portafolio de código, necesitaras conectar tu cuenta de GitHub con Free Code Camp. Tu portafolio de código muestra tu progreso y cuantos Brownie Points tienes. Puedes obtener Brownie Points completando desafíos y ayudando a otros campistas en nuestras salas de chat. Si obtienes Brownie Points varios días consecutivos, obtendrás una racha.", </del> <ins> "Un gif mostrándote como puedes pulsar en tu imagen de perfil en la esquina superior derecha conectar tu portafolio y GitHub.", "Dale un vistazo de tu portafolio de código. Pulsa en tu imagen en la esquina superior derecha. Para activar tu portafolio de código, necesitaras conectar tu cuenta de GitHub con Free Code Camp. Tu portafolio de código muestra tu progreso y cuantos Puntos Cafés tienes. Puedes obtener Puntos Cafés completando desafíos y ayudando a otros campistas en nuestras salas de chat. Si obtienes Puntos Cafés varios días consecutivos, obtendrás una racha.", </ins> "" ] ]

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

], [ "http://i.imgur.com/sfsidp6.jpg", <del> "El texto "Volverse bueno programa requiere tiempo."", </del> <ins> "El texto "Volverse bueno programando requiere tiempo."", </ins> "Volverse bueno programando requiere tiempo. No esperarías derrotar a un maestro del ajedrez después de jugar por 3 meses. No esperes crear el próximo Facebook después de programar 3 meses.", "" ],

], [ "http://i.imgur.com/GxvrsFb.gif", <del> "Un gif mostrandote como hacer una búsqueda avanzada en Google. Primero, escribimos la consulta "jquery no corre cuando mi página carga". Entonces damos clic en el botón de herramientas y cambiamos la selección de "En cualquier momento" a "en el último año". Entonces hacemos clic en un resultado o leemos a través del artículo y encontramos nuestra respuesta.", "Si eso no ayudo, busca en Google. Buenas búsquedas en Google toman mucha práctica. Cuando buscas en Google, usualmente querrás incluir el lenguaje o framework que estás usando. También querrás limitar los resultados a un período reciente.", </del> <ins> "Un gif mostrándote como hacer una búsqueda avanzada en Google. Primero, escribimos la consulta "jquery no corre cuando mi página carga". Entonces damos clic en el botón de herramientas y cambiamos la selección de "En cualquier momento" a "en el último año". Entonces hacemos clic en un resultado o leemos a través del artículo y encontramos nuestra respuesta.", "Si eso no ayudo, busca en Google. Realizar buenas búsquedas en Google requiere mucha práctica. Cuando buscas en Google, usualmente querrás incluir el lenguaje o entorno (framework) que estás usando. También querrás limitar los resultados a un período reciente.", </ins> "" ], [ "http://i.imgur.com/LZYU7p2.gif", <del> "Un gif mostrandonos como seguir el enlace inferior para ir a nuestra sala de chat de ayuda y preguntar "jquery no corre cuando mi página carga".", "Si eso no te ayudó, preguntale a tus amigos. Si tienes problemas, puedes preguntar a tus compañeros campistas en nuestra sala de chat.", </del> <ins> "Un gif mostrándonos como seguir el enlace inferior para ir a nuestra sala de chat de ayuda y preguntar "jquery no corre cuando mi página carga".", "Si eso no te ayudó, pregúntale a tus amigos. Si tienes problemas, puedes preguntar a tus compañeros campistas en nuestra sala de chat.", </ins> "https://gitter.im/FreeCodeCamp/Help" ], [ "http://i.imgur.com/ZRgXraT.gif", <del> "Un gif mostrandonos nuestro mapa de desafíos.", </del> <ins> "Un gif mostrándonos nuestro mapa de desafíos.", </ins> "Ahora estas listo para empezar a programar. El botón de  "Mapa" en tu esquina superior derecha te mostrará nuestro mapa de desafíos. Te recomendaos que completes los desafíos de arriba hacía abajo, a un ritmo sostenible. Nuestra comunidad de código abierto esta constantemente mejorando nuestros desafíos, así que no te sorprendas si cambian o se mueven alrededor. No te preocupes por volver hacia atrás - solo continúa avanzando. Siempre puedes ir a tu desafío más reciente pulsando el botón de "Aprender".", "" ]


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

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

"tests": [], "type": "zipline", "challengeType": 3,  "nameEs": "Tribute",   "nameEs": "Construye una página Tributo",  "descriptionEs": [  "Objetivo: Crea una aplicación con CodePen.io que reproduzca efectivamente mediante ingeniería inversa este app: http://codepen.io/FreeCodeCamp/full/pgNRoJ.",   "Objetivo: Crea una aplicación con CodePen.io que funcionalmente sea similar a esta: http://codepen.io/FreeCodeCamp/full/wMQrXV",  "Regla #1: No veas el código del proyecto de ejemplo en CodePen. Encuentra la forma de hacerlo por tu cuenta.",  "Regla #2: Puedes usar cualquier librería o APIs que necesites.", "Regla #3: Usa ingeniería inversa para reproducir la funcionalidad del proyecto de ejemplo, pero también siéntete en la libertad de personalizarlo.", "Las siguientes son las historias de usuario que debes satisfacer, incluyendo las historias opcionales:", "Historia de usuario: Como usuario, puedo navegar las publicaciones recientes de Camper News.", "Historia de usuario: Como usuario, puedo pulsar en una publicación y ser llevado al URL original de la historia.", "Historia de usuario opcional: Como usuario, puedo ver cuántos votos tiene cada historia.", "Pista: Este es el endpoint del API de Noticias calientes de Camper News: http://www.freecodecamp.com/news/hot.", "Recuerda utilizar Read-Search-Ask si te sientes atascado.", "Cuando hayas terminado, pulsa el botón de "I've completed this challenge" e incluye un link a tu CodePen. Si programaste en pareja, debes incluir también el nombre de usuario de Free Code Camp de tu compañero.", "Si quieres retroalimentación inmediata de parte de tus compañeros campistas, pulsa este botón y pega el link de tu proyecto en CodePen.

Pulsa aquí y agrega tu link en el texto del tweet"   "Regla #2: Satisface las siguientes historias de usuario. Usa cualquier librería que necesites. Dale tu estilo personal.", "Historia de usuario: Puedo ver una página tributo con una imagen y un texto.", "Historia de usuario: Puedo pulsar un enlace que me llevará a un sitio web externo con mayor información sobre el tema.", "Recuerda utilizar Leer-Buscar-Preguntar si te sientes atascado.", "Cuando hayas terminado, pulsa el botón de "I've completed this challenge" e incluye un link a tu CodePen. ", "Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiéndolo 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)."  ], "isRequired": true },

], "nameEs": "Construye una página web para tu portafolio", "descriptionEs": [  "Objetivo: Crea una aplicación con CodePen.io que reproduzca efectivamente mediante ingeniería inversa este app: http://codepen.io/FreeCodeCamp/full/VemmoX/.",   "Objetivo: Crea una aplicación con CodePen.io cuya funcionalidad sea similar a la de esta: http://codepen.io/FreeCodeCamp/full/VemmoX/.",  "Regla #1: No veas el código del proyecto de ejemplo en CodePen. Encuentra la forma de hacerlo por tu cuenta.",  "Regla #2: Puedes usar cualquier librería o APIs que necesites.", "Regla #3: Usa ingeniería inversa para reproducir la funcionalidad del proyecto de ejemplo, pero también siéntete en la libertad de personalizarlo.", "Pista: Si no quieres iniciar desde cero, puedes bifurcar (fork) la siguiente plantilla simple de Bootstrap en CodePen: http://codepen.io/FreeCodeCamp/pen/mJNqQj.", "Las siguientes son las historias de usuario que debes satisfacer, incluyendo las historias opcionales:", "Historia de usuario: Como usuario, puedo acceder a todo el contenido de la página del portafolio con sólo desplazarme en la ventana.", "Historia de usuario: Como usuario, puedo pulsar diferentes botones que me llevarán a las páginas de las diferentes cuentas de redes sociales del creador.", "Historia de usuario: Como usuario, puedo ver una imagen de los diferentes proyectos que el creador del portafolio ha construido (si no has construido ningún sitio web antes, usa placeholders.)", "Historia de usuario opcional: Como usuario, puedo navegar a las diferentes secciones de la página web pulsando botones de navegación.",   "Regla #2: Satisface las siguientes historias de usuario. Usa cualquier librería que necesites. Dale tu estilo personal.", "Historia de usuario: Puedo acceder a todo el contenido de la página del portafolio con sólo desplazarme en la ventana.", "Historia de usuario: Puedo pulsar diferentes botones que me llevarán a las páginas de las diferentes cuentas de redes sociales del creador del portafolio.", "Historia de usuario: Puedo ver una imagen de los diferentes proyectos que el creador del portafolio ha construido (si no has construido ningún sitio web antes, usa plantillas.)", "Historia de usuario opcional: Puedo navegar a las diferentes secciones de la página web pulsando botones de navegación.",  "No te preocupes si no tienes nada que mostrar en tu portafolio todavía - en los siguientes desafíos crearás varias apps en CodePen, así que puedes regresar luego para actualizar tu portafolio.", "Hay varias buenas plantillas, pero para este desafío, tendrás que construir la página web de tu portafolio completamente por tu cuenta. Usar Bootstrap hará el trabajo mucho más fácil para ti.", "Ten en mente que CodePen.io ignora la función Window.open(), así que si quieres abrir alguna ventana usando jQuery, necesitarás utilizar como objetivo un elemento de ancla invisible como el siguiente: <a target='_blank'>.", "Recuerda utilizar Read-Search-Ask si te sientes atascado.",  "Cuando hayas terminado, pulsa el botón de "I've completed this challenge" e incluye un link a tu CodePen. Si programaste en pareja, debes incluir también el nombre de usuario de Free Code Camp de tu compañero.", "Si quieres retroalimentación inmediata de parte de tus compañeros campistas, pulsa este botón y pega el link de tu proyecto en CodePen.

Pulsa aquí y agrega tu link en el texto del tweet"   "Cuando hayas terminado, pulsa el botón de "I've completed this challenge" e incluye un link a tu CodePen. ", "Puedes obtener retroalimentación sobre tu proyecto por parte de otros campistas, compartiéndolo 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)."  ], "isRequired": true, "challengeType": 3 } ]  }   No newline at end of file  }