Question:
Password form button does not respond to click. Additionally the jumbotron div that is meant to have a white background for the form is too short (only approx 96px and form is 317px).
Lui8906 can you confirm the issue is resolved so we can close it?
Still when I am at the reset form after recieving the email and following the link, I put in a matching password and the button does not do anything or provide any feedback, are there password requirements? etc..
Ok, thanks. To confirm, this is on password reset, after requesting to reset password? I'll look into it, thanks.
Yep On Tue Jan 13 2015 at 8:57:53 AM Nathan wrote:
We've fixed this with our recent pull request.

{ <del> "node": true </del> <ins> /* * ENVIRONMENTS * ================= */ // Define globals exposed by Node.js. "node": true, /* * ENFORCING OPTIONS * ================= */ // Force all variable names to use either camelCase style or UPPER_CASE // with underscores. "camelcase": true, // Prohibit use of == and != in favor of === and !==. "eqeqeq": true, // Suppress warnings about == null comparisons. "eqnull": true, // Enforce tab width of 2 spaces. "indent": 2, // Prohibit use of a variable before it is defined. "latedef": true, // Require capitalized names for constructor functions. "newcap": true, // Enforce use of single quotation marks for strings. "quotmark": "single", // Prohibit trailing whitespace. "trailing": true, // Prohibit use of explicitly undeclared variables. "undef": true, // Warn when variables are defined but never used. "unused": true, // Enforce line length to 80 characters "maxlen": 80 </ins> }


Question:
Password form button does not respond to click. Additionally the jumbotron div that is meant to have a white background for the form is too short (only approx 96px and form is 317px).
Lui8906 can you confirm the issue is resolved so we can close it?
Still when I am at the reset form after recieving the email and following the link, I put in a matching password and the button does not do anything or provide any feedback, are there password requirements? etc..
Ok, thanks. To confirm, this is on password reset, after requesting to reset password? I'll look into it, thanks.
Yep On Tue Jan 13 2015 at 8:57:53 AM Nathan wrote:
We've fixed this with our recent pull request.

<ins> { /* * ENVIRONMENTS * ================= */ // Define globals exposed by modern browsers. "browser": true, // Define globals exposed by jQuery. "jquery": true, /* * ENFORCING OPTIONS * ================= */ // Force all variable names to use either camelCase style or UPPER_CASE // with underscores. "camelcase": true, // Prohibit use of == and != in favor of === and !==. "eqeqeq": true, // Suppress warnings about == null comparisons. "eqnull": true, // Enforce tab width of 2 spaces. "indent": 2, // Prohibit use of a variable before it is defined. "latedef": true, // Require capitalized names for constructor functions. "newcap": true, // Enforce use of single quotation marks for strings. "quotmark": "single", // Prohibit trailing whitespace. "trailing": true, // Prohibit use of explicitly undeclared variables. "undef": true, // Warn when variables are defined but never used. "unused": true, // Enforce line length to 80 characters "maxlen": 80, // Enforce placing 'use strict' at the top function scope "strict": true' } </ins>


Question:
Password form button does not respond to click. Additionally the jumbotron div that is meant to have a white background for the form is too short (only approx 96px and form is 317px).
Lui8906 can you confirm the issue is resolved so we can close it?
Still when I am at the reset form after recieving the email and following the link, I put in a matching password and the button does not do anything or provide any feedback, are there password requirements? etc..
Ok, thanks. To confirm, this is on password reset, after requesting to reset password? I'll look into it, thanks.
Yep On Tue Jan 13 2015 at 8:57:53 AM Nathan wrote:
We've fixed this with our recent pull request.

وهي مقسمة إلى الفئات التالية: *   الأعداد الصحيحة <del> *   أرقام النقطة العائمة *   الشخصيات *   اكتب منطقي </del> <ins> *   الاعداد العشرية *   الرموز *   القيم المنطقية </ins> تفاصيل كل نوع من أنواع البيانات مذكورة أدناه: ## الأعداد الصحيحة: <del> هذه هي من أربعة أنواع: `byte` ، `short` ، `int` ، `long` . من المهم ملاحظة أن هذه القيم موجبة وسالبة. يتم تخزين الأعداد الصحيحة في جهاز الكمبيوتر باستخدام [مكمل 2](http://www.ele.uri.edu/courses/ele447/proj_pages/divid/twos.html) . ويتكون من قيم سلبية وإيجابية ولكن بصيغ مختلفة مثل `(-1 to -128)` أو `(0 to +127)` . يمكن أن يحتوى عدد صحيح غير موقعة على قيمة موجبة أكبر ، ولا توجد قيمة سالبة مثل `(0 to 255)` . على عكس C ++ لا يوجد عدد صحيح غير موقعة في Java. </del> <ins> هذه هي من أربعة أنواع: `byte` ، `short` ، `int` ، `long` . من المهم ملاحظة أن هذه القيم موجبة وسالبة. يتم تخزين الأعداد الصحيحة في جهاز الكمبيوتر باستخدام [مكمل 2](http://www.ele.uri.edu/courses/ele447/proj_pages/divid/twos.html) . ويتكون من قيم سالبة وموجبة ولكن بصيغ مختلفة مثل `(-1 to -128)` أو `(0 to +127)` . يمكن أن يحتوى عدد صحيح غير موقعة على قيمة موجبة أكبر ، ولا توجد قيمة سالبة مثل `(0 to 255)` . على عكس C ++ لا يوجد عدد صحيح غير موقعة في Java. </ins> <del> ### بايت: </del> <ins> ### بايت (byte): </ins> نوع البيانات بايت هو عدد صحيح مكمل 8 بت موقعة اثنين. <del> `Wrapper Class: Byte </del> <ins> `Wrapper Class (الفئة): Byte </ins> <del> Minimum value: -128 (-2^7) </del> <ins> Minimum value (القيمة الاصغر): -128 (-2^7) </ins> <del> Maximum value: 127 (2^7 -1) </del> <ins> Maximum value (القيمة القصوى): 127 (2^7 -1) </ins> <del> Default value: 0 </del> <ins> Default value (القيمة الافتراضية): 0 </ins> <del> Example: byte a = 10 , byte b = -50; </del> <ins> Example (مثال): byte a = 10 , byte b = -50; </ins> ` <del> ### قصيرة: </del> <ins> ### قصيرة (short): </ins> نوع البيانات القصير هو عدد صحيح مكمل من 16 بت موقعة اثنين. <del> `Wrapper Class: Short </del> <ins> `Wrapper Class (الفئة): Short </ins> <del> Minimum value: -32,768 (-2^15) </del> <ins> Minimum value (القيمة الصغرى): -32,768 (-2^15) </ins> <del> Maximum value: 32,767 (2^15 -1) </del> <ins> Maximum value (القيمة القصوى): 32,767 (2^15 -1) </ins> <del> Default value: 0. </del> <ins> Default value (القيمة الافتراضية): 0. </ins> <del> Example: short s = 10, short r = -1000; </del> <ins> Example (مثال): short s = 10, short r = -1000; </ins> ` <del> ### الباحث: </del> <ins> ### العدد الصحيح (integer): </ins> نوع البيانات IN هو عدد صحيح مكمل 32 بت موقعة اثنين. يتم استخدامه بشكل عام كنوع بيانات افتراضي للقيم المتكاملة إلا إذا كان هناك قلق حول الذاكرة. <del> `Wrapper Class: Integer </del> <ins> `Wrapper Class (الفئة): Integer </ins> <del> Minimum value: (-2^31) </del> <ins> Minimum value (القيمة الصغرى): (-2^31) </ins> <del> Maximum value: (2^31 -1) </del> <ins> Maximum value (القيمة القصوى): (2^31 -1) </ins> <del> The default value: 0. </del> <ins> The default value (القيمة الافتراضية): 0. </ins> <del> Example: int a = 50000, int b = -20 </del> <ins> Example (مثال): int a = 50000, int b = -20 </ins> ` <del> ### طويل: </del> <ins> ###  طويل (long): </ins> نوع بيانات طويل هو عدد صحيح مكمل 64 بت موقعة اثنين. <del> `Wrapper Class: Long </del> <ins> `Wrapper Class (الفئة): Long </ins> <del> Minimum value: (-2^63) </del> <ins> Minimum value (القيمة الصغرى): (-2^63) </ins> <del> Maximum value: (2^63 -1) </del> <ins> Maximum value (القيمة القصوى): (2^63 -1) </ins> <del> Default value: 0L. </del> <ins> Default value (القيمة الافتراضية): 0L. </ins> <del> Example: long a = 100000L, long b = -600000L; </del> <ins> Example (مثال): long a = 100000L, long b = -600000L; </ins> By default all integer type variable is "int". So long num=600851475143  will give an error. But it can be specified as long by appending the suffix L (or l) ` <del> ## نقطة عائمة: </del> <ins> ## اعداد عشرية: </ins> تسمى هذه أيضًا أرقامًا حقيقية وتستخدم للتعبيرات التي تتضمن دقة كسرية. هذه من نوعين: `float` ، `double` . يتم تجنب Float فعليًا في حالة البيانات الدقيقة مثل بيانات العملات أو الأبحاث. <del> ### تطفو: </del> <ins> ### تطفو (float): </ins> نوع بيانات عائم عبارة عن [نقطة عائمة IEEE 754](http://steve.hollasch.net/cgindex/coding/ieeefloat.html) ذات دقة واحدة 32 بت. <del> `Wrapper Class: Float </del> <ins> `Wrapper Class (الفئة): Float </ins> Float is mainly used to save memory in large arrays of floating point numbers. <ins> اساسا تستخدم لحفظ الذاكرة في المصفوفات المكونة من الارقام العشرية ذات دقة واحدة(float) </ins> <del> Default value: 0.0f. </del> <ins> Default value (القيمة الافتراضية): 0.0f. </ins> <del> Example: float f1 = 24.5f; </del> <ins> Example (مثال): float f1 = 24.5f; The default data type of floating-point number is double. So float f = 24.5 will introduce an error. نوع القيمة الافتراضية للارقام العشرية ذات دقة واحدة هو مزدوج. مثال: float f = 24.5 ستظهر خطا للمستخدم However, we can append the suffix F (or f) to designate the data type as float. لكن, بامكاننا استخدام F(or f) لتعيين توع البيانات كرقم عشري ذات دقة واحدة (float) </ins> <del> The default data type of floating-point number is double. So float f = 24.5 will introduce an error. However, we can append the suffix F (or f) to designate the data type as float. ` ### مزدوج: </del> <ins> ### مزدوج (double): </ins> نوع بيانات مزدوج هو [نقطة عائم IEEE 754](http://steve.hollasch.net/cgindex/coding/ieeefloat.html) مزدوجة الدقة 64 بت. عادةً ما يكون نوع البيانات هذا هو الخيار الافتراضي. يجب عدم استخدام نوع البيانات هذا مطلقًا للقيم الدقيقة ، مثل العملة.


Question:
Password form button does not respond to click. Additionally the jumbotron div that is meant to have a white background for the form is too short (only approx 96px and form is 317px).
Lui8906 can you confirm the issue is resolved so we can close it?
Still when I am at the reset form after recieving the email and following the link, I put in a matching password and the button does not do anything or provide any feedback, are there password requirements? etc..
Ok, thanks. To confirm, this is on password reset, after requesting to reset password? I'll look into it, thanks.
Yep On Tue Jan 13 2015 at 8:57:53 AM Nathan wrote:
We've fixed this with our recent pull request.

``` 10198442 <del> ``` </del>  No newline at end of file <ins> ``` </ins>


Question:
On the bonfire page the title should have Learn to code with bonfire | Free Code Camp. Learn to code is our SEO keyword, so we want to implement that when we can.
I just a title and did a pr instead of an issue :)

## Byzantine Fault Tolerance Imagine the scenario where there is an empire and there are three generals with their respective armies at different positions. All of them must attack in order to win the fight or they can choose to retreat. Their only means of communications are through pigeon posts. But there is a problem, the generals can't trust each other or ensure that the message has not been corrupted along the way. How do they solve this problem? Blockchain essentially does so by listening to information broadcasted by other people, reaching to a consensus of which information is deemed true. As such, this model asssumes that the amount of "traitors" do not exceed more than 1/3 of the entire network. <ins> ## Modern Use Cases of Blockchain - Asset Tokenization : Using blockchain technology, previously illiquid assets can now be converted into its tokenized form and cheaply and efficiently fractionalized, traded and settled on chain (rather than go through the lengthy process of clearing and settlement process through third parties like clearing houses) - Supply Chain Management : Blockchains allow multiple parties to access a database to act as the single source of truth. Recorded transactions are immutable, are append only and provide a time stamped audit trail. - Digital Identity : A self sovereign ID can be used to verify identity without needing an individual to produce numerous documents and paperwork each time they need their identity verified. This could be done with a single key that can be matched against an immutable ledger. The digital ID can also collect other online information about a user’s identity like social security information, medical records and social media credentials and have that stored securely on the blockchain. - Energy Market : Blockchain technology can enable the smart metering of electricity generated through an individual’s solar panels to be recorded, traded and settled on a ledger. - Healthcare : Using blockchain technology to record patient information on a distributed ledger can allow different stakeholders conditional access to a single source of truth where each interaction with a patient’s health data can be recorded on a ledger as a transaction with a time stamped audit trail. </ins> ## Issues Whilst blockchain technology is undoubtedly elegant, there are several problems that its presence brings, the main one being use my malicious third parties. Due to the extremely secure nature of blockchain, its technologies are often used by criminals to carry out transactions, which are impossible for governments to track.


Question:
Code expects, in one case, for you to only be pulling the key-value pair and treating it as a new individual object, and in the second case, for you to pull the full object that possesses the key-value pair. And output / tests: Fails assert.deepEqual(where([{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], { 'a': 1 }), [{ 'a': 1 }, { 'a': 1 }, { 'a': 1 }], 'should return with multiples');AssertionError:should return with multiples: expected [ { a: 1 }, { a: 1 }, { a: 1, b: 2 } ] to deeply equal [ { a: 1 }, { a: 1 }, { a: 1 } ] But Succeeds assert.deepEqual(where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' }), [{ first: 'Tybalt', last: 'Capulet' }], 'should return an array of objects');
Same problem. Going to fix it now.
Can you please explain for(var key in source)
that may be a better question to ask in gitter. See: and

"description": [ "Write a function that splits an array (first argument) into groups the length of size (second argument) and returns them as a multidimensional array." ], <del> "challengeSeed": "function chunk(arr, size) {n  // Break it up.rn  return arr;rn}nnchunk((['a', 'b', 'c', 'd'], 2));", </del> <ins> "challengeSeed": "function chunk(arr, size) {n  // Break it up.rn  return arr;rn}nnchunk(['a', 'b', 'c', 'd'], 2);", </ins> "tests": [ "assert.deepEqual(chunk(['a', 'b', 'c', 'd'], 2), [['a', 'b'], ['c', 'd']], 'should return chunked arrays');", "assert.deepEqual(chunk([0, 1, 2, 3, 4, 5], 3), [[0, 1, 2], [3, 4, 5]], 'should return chunked arrays');",


Question:
Code expects, in one case, for you to only be pulling the key-value pair and treating it as a new individual object, and in the second case, for you to pull the full object that possesses the key-value pair. And output / tests: Fails assert.deepEqual(where([{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], { 'a': 1 }), [{ 'a': 1 }, { 'a': 1 }, { 'a': 1 }], 'should return with multiples');AssertionError:should return with multiples: expected [ { a: 1 }, { a: 1 }, { a: 1, b: 2 } ] to deeply equal [ { a: 1 }, { a: 1 }, { a: 1 } ] But Succeeds assert.deepEqual(where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' }), [{ first: 'Tybalt', last: 'Capulet' }], 'should return an array of objects');
Same problem. Going to fix it now.
Can you please explain for(var key in source)
that may be a better question to ask in gitter. See: and

"description": [ "Return the remaining elements of an array after chopping off n elements from the head." ], <del> "challengeSeed": "function slasher(arr) {n  // it doesn't allways pay to be firstrn  return arr;rn}nnslasher([1, 2, 3], 2);", </del> <ins> "challengeSeed": "function slasher(arr, howMany) {n  // it doesn't allways pay to be firstrn  return arr;rn}nnslasher([1, 2, 3], 2);", </ins> "tests": [ "assert.deepEqual(slasher([1, 2, 3], 2), [3], 'should drop the first two elements');", "assert.deepEqual(slasher([1, 2, 3], 0), [1, 2, 3], 'should return all elements when n < 1');",


Question:
Code expects, in one case, for you to only be pulling the key-value pair and treating it as a new individual object, and in the second case, for you to pull the full object that possesses the key-value pair. And output / tests: Fails assert.deepEqual(where([{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], { 'a': 1 }), [{ 'a': 1 }, { 'a': 1 }, { 'a': 1 }], 'should return with multiples');AssertionError:should return with multiples: expected [ { a: 1 }, { a: 1 }, { a: 1, b: 2 } ] to deeply equal [ { a: 1 }, { a: 1 }, { a: 1 } ] But Succeeds assert.deepEqual(where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' }), [{ first: 'Tybalt', last: 'Capulet' }], 'should return an array of objects');
Same problem. Going to fix it now.
Can you please explain for(var key in source)
that may be a better question to ask in gitter. See: and

] }, { <ins> "_id":"a8e512fbe388ac2f9198f0fa", "name":"Where art thou", "difficulty":"1.55", "description":[ "Make a function that looks through a list (first argument) and returns an array of all objects that have equivalent property values (second argument)." ], "challengeEntryPoint":"where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' });", "challengeSeed":"function where(collection, source) {n  var arr = [];rn  // What's in a name?rn  return arr;rn}", "tests":[ "assert.deepEqual(where([{ first: 'Romeo', last: 'Montague' }, { first: 'Mercutio', last: null }, { first: 'Tybalt', last: 'Capulet' }], { last: 'Capulet' }), [{ first: 'Tybalt', last: 'Capulet' }], 'should return an array of objects');", "assert.deepEqual(where([{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], { 'a': 1 }), [{ 'a': 1 }, { 'a': 1 }, { 'a': 1, 'b': 2 }], 'should return with multiples');" ] }, { </ins> "_id":"a39963a4c10bc8b4d4f06d7e", "name":"Seek and Destroy", "difficulty":"1.60",


Question:
source: Currently Reads: "Remove all values (last argument(s)) from an array (first argument) and return as a new array." Issue: From my understanding, the user is all the values from an array. However, the information in the parentheses (e.g "last argument(s) and "first argument") seem confusing. Can you please ellaborate further?
Here's another way of saying it: You will be provided with an array (the first argument in the function) and one or more values (the remaining arguments in the function) that must be removed from that array. If you look at the current tests, the arguments are similar: 1 array and 2 values. The instructions are asking you to remove as many values as are provided, but you will pass the tests if you only account for two (this will most likely be updated in the future). Does that help?
In the more information section we should mention about the object of JavaScript, and also perhaps link to the MDN page of it.
See updated copy: and pull request

"name":"Seek and Destroy", "difficulty":"1.60", "description":[ <del> "Remove all values (last argument(s)) from an array (first argument) and return as a new array." </del> <ins> "You will be provided with an initial array (the first argument in the destroyer function), followed by one or more arguments. Remove all elements from the initial array that are of the same value as these arguments." </ins> ], "challengeSeed": "function destroyer(arr) {n  // Remove all the valuesrn  return arr;rn}nndestroyer([1, 2, 3, 1, 2, 3], 2, 3);", "tests": [ "assert.deepEqual(destroyer([1, 2, 3, 1, 2, 3], 2, 3), [1, 1], 'should remove correct values from an array');", "assert.deepEqual(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3), [1, 5, 1], 'should remove correct values from an array');" ], <del> "MDNlinks" : ["Array.filter()"] </del> <ins> "MDNlinks" : ["Arguments object","Array.filter()"] </ins> }, { "_id": "a24c1a4622e3c05097f71d67",


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

_ = require('lodash'), fs = require('fs'), <del> constantStrings = require('constantStrings.json'), </del> <ins> constantStrings = require('./constantStrings.json'), </ins> User = require('../models/User'), Challenge = require('./../models/Challenge'), Story = require('./../models/Story'),


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

<del> var moment = require('moment'), </del> <ins> /* eslint-disable no-catch-shadow, no-unused-vars */ var R = require('ramda'), debug = require('debug')('freecc:cntr:story'), Story = require('./../models/Story'), Comment = require('./../models/Comment'), User = require('./../models/User'), moment = require('moment'), resources = require('./resources'), </ins> mongodb = require('mongodb'), <del> nodemailer = require('nodemailer'), sanitizeHtml = require('sanitize-html'), </del> MongoClient = mongodb.MongoClient, <del> resources = require('./resources'), </del> secrets = require('../config/secrets'), <del> Story = require('./../models/Story'), Comment = require('./../models/Comment'), User = require('./../models/User'); </del> <ins> nodemailer = require('nodemailer'), sanitizeHtml = require('sanitize-html'); </ins> function hotRank(timeValue, rank) { /*


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

); story.markModified('rank'); story.save(); <del> User.find({ '_id': story.author.userId }, function(err, user) { </del> <ins> User.findOne({'_id': story.author.userId}, function(err, user) { </ins> if (err) { return next(err); } <del> user = user.pop(); </del> user.progressTimestamps.push(Date.now() || 0); <del> user.save(function (err) { req.user.save(function (err) { </del> <ins> user.save(function (err, user) { req.user.save(function (err, user) { </ins> if (err) { return next(err); }


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

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


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

try { // Based on the context retrieve the parent // object of the comment (Story/Comment) <del> Context.find( { '_id': data.associatedPost }, function (err, associatedContext) { </del> <ins> Context.find({'_id': data.associatedPost}, function (err, associatedContext) { if (err) { return next(err); } associatedContext = associatedContext.pop(); if (associatedContext) { associatedContext.comments.push(data._id); associatedContext.save(function (err) { if (err) { return next(err); } res.send(true); }); } // Find the author of the parent object User.findOne({'profile.username': associatedContext.author.username}, function(err, recipient) { </ins> if (err) { return next(err); } <del> associatedContext = associatedContext.pop(); if (associatedContext) { associatedContext.comments.push(data._id); associatedContext.save(function (err) { if (err) { return next(err); </del> <ins> // If the emails of both authors differ, // only then proceed with email notification if ( typeof data.author !== 'undefined' && data.author.email && typeof recipient !== 'undefined' && recipient.email && (data.author.email !== recipient.email) ) { var transporter = nodemailer.createTransport({ service: 'Mandrill', auth: { user: secrets.mandrill.user, pass: secrets.mandrill.password </ins> } <del> res.send(true); </del> }); <del> } // Find the author of the parent object User.findOne( { 'profile.username': associatedContext.author.username }, function(err, recipient) { </del> <ins> var mailOptions = { to: recipient.email, from: 'Team@freecodecamp.com', subject: data.author.username + ' replied to your post on Camper News', text: [ 'Just a quick heads-up: ', data.author.username, ' replied to you on Camper News.', 'You can keep this conversation going.', 'Just head back to the discussion here: ', 'http://freecodecamp.com/news/', data.originalStoryLink, '- the Free Code Camp Volunteer Team' ].join('n') }; transporter.sendMail(mailOptions, function (err) { </ins> if (err) { <del> return next(err); </del> <ins> return err; </ins> } <del> // If the emails of both authors differ, // only then proceed with email notification if ( typeof data.author !== 'undefined' && data.author.email && typeof recipient !== 'undefined' && recipient.email && (data.author.email !== recipient.email) ) { var transporter = nodemailer.createTransport({ service: 'Mandrill', auth: { user: secrets.mandrill.user, pass: secrets.mandrill.password } }); var mailOptions = { to: recipient.email, from: 'Team@freecodecamp.com', subject: data.author.username + ' replied to your post on Camper News', text: [ 'Just a quick heads-up: ', data.author.username, ' replied to you on Camper News.', 'You can keep this conversation going.', 'Just head back to the discussion here: ', 'http://freecodecamp.com/news/', data.originalStoryLink, '- the Free Code Camp Volunteer Team' ].join('n') }; transporter.sendMail(mailOptions, function (err) { if (err) { return err; } }); } } ); } ); </del> <ins> }); } }); }); </ins> } catch (e) { <ins> // delete comment </ins> return next(err); } });


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

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


Question:
Typo on the first test "your text field have the property of being required". Also, the second test passes even if the placeholder text field is empty.
Thanks for the report, the copy has been updated.

"Add them as a new contact in Screen Hero, then click the monitor-looking button to attempt to share your screen with them.", "Once the Screen Hero session starts, your screen's margins will glow orange. You are now sharing your screen.", "Your pair will have their own cursor, and will be able to type text on his or her and keyboard.",  "Now it's time to tackle our Bonfires.", "Go to http://freecodecamp.com/bonfires and start working through our Bonfire challenges.",   "Now it's time to tackle our Bonfires. You can begin them by advancing to the next challenge.",  "Once you you finish pair programming, end the session in Screen Hero session.", "Congratulations! You have completed your first pair programming session.", "Pair program as much as possible with different campers until you've completed all the Bonfire challenges. This is a big time investment, but the JavaScript practice you get will be well worth it!",


Question:
Typo on the first test "your text field have the property of being required". Also, the second test passes even if the placeholder text field is empty.
Thanks for the report, the copy has been updated.

"tests": [ "assert($('ul').length > 0, 'You should have an ul element on your webpage.')", "assert($('ol').length > 0, 'You should have an ol element on your webpage.')",  "assert($('li').length > 5, 'You should have three li elements on within your ul element.')", "assert($('li').length > 5, 'You should have three li elements on within your ol element.')"   "assert($('li').length > 5, 'You should have three li elements within your ul element.')", "assert($('li').length > 5, 'You should have three li elements within your ol element.')"  ], "challengeSeed": [ "<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'>",


Question:
Typo on the first test "your text field have the property of being required". Also, the second test passes even if the placeholder text field is empty.
Thanks for the report, the copy has been updated.

"For example, if you wanted to make a text input field required, you can just add the word "required" within your input element use: <input type='text' required>" ], "tests": [  "assert($('input').prop('required'), 'Your text field have the property of being required.')", "assert($('[placeholder]').length > 0, 'Your text field should have the placeholder text of "cat photo URL".')"   "assert($('input').prop('required'), 'Your text field should have the property of being required.')", "assert(new RegExp('cat photo URL').test($('input').prop('placeholder')), 'Your text field should have the placeholder text of "cat photo URL".')"  ], "challengeSeed": [ "<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'>",


Question:
Typo on the first test "your text field have the property of being required". Also, the second test passes even if the placeholder text field is empty.
Thanks for the report, the copy has been updated.

"Put the "like", "Info" and "Delete" buttons side-by-side by wrapping all three of them within one <div class="row"> element, then each of them within a <div class="col-xs-4"> element.", "Bootstrap uses a responsive grid system, which makes it easy to put elements into rows and specify each element's relative width. Most of Bootstrap's classes can be applied to a div element.", "Here's a diagram of how Bootstrap's 12-column grid layout works:",  "",   "",  "Note that in this illustration, we use the col-md-* class. Here, "md" means "medium", and "*" is a number specifying how many columns wide the element should be. In this case, we're specifying how many columns wide an element should be on a medium-sized screen, such as a laptop.", "In the Cat Photo App that we're building, we'll use col-xs-*, where "*" is the number of columns wide the element should be, and "xs" means "extra small", like an extra-small mobile phone screen.", "The row class is applied to a div, and the buttons themselves can be wrapped within it."


Question:
Typo on the first test "your text field have the property of being required". Also, the second test passes even if the placeholder text field is empty.
Thanks for the report, the copy has been updated.

"name": "Waypoint: Line up Form Elements Responsively with Bootstrap", "difficulty" : 0.062, "description": [ <del> "Wrap both your form's text input field and submit button within a div with the class "row". Wrap your form's text input field within a div with the class of "col-xs-7". Wrap your form's submit button the in a div with the class "col-xs-5".", </del> "Now let's get your form input and your submission button on the same line. We'll do this the same way we have previously: by using a "row" element with "col-xs-*" elements withing it.", <ins> "Wrap both your form's text input field and submit button within a div with the class "row". Wrap your form's text input field within a div with the class of "col-xs-7". Wrap your form's submit button the in a div with the class "col-xs-5".", </ins> "This is the last challenge we'll do for our Cat Photo App for now. We hope you've enjoyed learning Font Awesome, Bootstrap, and responsive design!" ], "tests": [ <del> "assert($('.row').length > 4, 'Wrap your all of your checkboxes inside one div with the class "row".')", </del> <ins> "assert($('.row').length > 4, 'Wrap your form submission button and text area in a div with class "row".')", </ins> "assert($('.col-xs-5').length > 0, 'Wrap your form submission button in a div with the class "col-xs-5".')", "assert($('.col-xs-7').length > 0, 'Wrap your form text area in a div with the class "col-xs-7".')" ],


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. What I see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp<h2What I expected to see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp</h2
Markdown's getting in the way, see screenshot. !

"description": [ "Delete your h2 element's style tag and write the CSS to make all h2 elements blue.", "With CSS, there are hundreds of CSS attributes that you can use to change the way an element looks on a web page.",  "When you entered <h2 style="color: red">CatPhotoApp<h2>, you were giving that individual h2 element an inline style",   "When you entered <h2 style="color: red">CatPhotoApp</h2>, you were giving that individual h2 element an inline style",  "That's one way to add style to an element, but a better way is by using Cascading Style Sheets (CSS).", "At the top of your code, create a style tag like this: <style></style>", "Inside that style element, you can create a css selector for all h2 elements. For example, if you wanted all h2 elements to be red, your style element would look like this: <style>h2 {color: red;}</style>",


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. What I see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp<h2What I expected to see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp</h2
Markdown's getting in the way, see screenshot. !

"Here's the anatomy of a CSS class:", "", "You can see that we've created a CSS class called "blue-text" within the <style> tag.",  "You can apply a class to an HTML element like this: <h2 class="blue-text">CatPhotoApp<h2>",   "You can apply a class to an HTML element like this: <h2 class="blue-text">CatPhotoApp</h2>",  "Note that in your CSS style element, classes should start with a period. In your HTML elements' class declarations, classes shouldn't start with a period.", "Instead of creating a new Style tag, try removing the h2 style declaration from the existing style element, and replace it with the class declaration for ".red-text"." ],


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. What I see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp<h2What I expected to see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp</h2
Markdown's getting in the way, see screenshot. !

"description": [ "Wrap your img element inside an anchor element with a dead link.", "You can make elements into links by wrapping them in an anchor tag.",  "Wrap your image in an anchor tag. Here's an example: <a href='#'><img src='http://bit.ly/fcc-kittens2'></a>",   "Wrap your image in an anchor tag. Here's an example: <a href='#'><img src='http://bit.ly/fcc-kittens2'/></a>",  "Remember to use the hash symbol as your anchor tag's href property in order to turn it into a dead link.", "Once you've done this, hover over your image with your cursor. Your cursor's normal pointer should become the link clicking pointer. The photo is now a link." ],


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. What I see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp<h2What I expected to see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp</h2
Markdown's getting in the way, see screenshot. !

"Replace the paragraph elements with an unordered list of three things that cats love.", "HTML has a special element for creating unordered lists, or bullet point-style lists.", "Unordered lists start with a <ul> element. Then they contain some number of <li> elements.",  "For example: <ul><li>milk</li><li>cheese</li><ul> would create a bulleted list of "milk" and "cheese"."   "For example: <ul><li>milk</li><li>cheese</li></ul> would create a bulleted list of "milk" and "cheese"."  ], "tests": [ "assert($('ul').length > 0, 'Create a ul element.')",


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. What I see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp<h2What I expected to see: You can apply a class to an HTML element like this: <h2 class="blue-text"CatPhotoApp</h2
Markdown's getting in the way, see screenshot. !

"Create an ordered list of the the top 3 things cats hate the most.", "HTML has a special element for creating ordered lists, or numbered-style lists.", "Ordered lists start with a <ol> element. Then they contain some number of <li> elements.",  "For example: <ol><li>hydrogen</li><li>helium</li><ol> would create a numbered list of "hydrogen" and "helium"."   "For example: <ol><li>hydrogen</li><li>helium</li></ol> would create a numbered list of "hydrogen" and "helium"."  ], "tests": [ "assert($('ul').length > 0, 'You should have an ul element on your webpage.')",


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. Step : "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs." incorrectly to this url: It should link to: Unless that misdirection is meant to be tricky for the student ;)
This is a duplicate of
Kind of. This one is referring to a different page (challenge/zipline), but I did notice that all of the Ziplines have the same bug.
This was fixed ages ago, right? Please close.
This isn't actually fixed. The erroneous link still exists in these ziplines: Maybe it's not an issue because we'll be switching over to the content at soon? But I thought you should know that the issue hasn't actually been fixed yet. Actually, the only reason that it isn't an issue on the beta site is that none of the ziplines seem to link directly to the jquery json page.
This was fixed in prior to the branch being available through Now they seem to have changed how the ziplines look, so it wouldn't be an issue regardless. Since all changes seem to happen on the branch before ending up in production, issues that are fixed in should probably be considered fixed, even though it might be better to merge small fixes like this into production at a quicker rate than what is the current reality.
Thanks for the explanation! That makes sense. I'm not privy to staging, so I didn't realize it had been fixed there.

"Hint: Here's an example call to Twitch.tv's JSON API: https://api.twitch.tv/kraken/streams/freecodecamp.", "Hint: The relevant documentation about this API call is here: https://github.com/justintv/Twitch-API/blob/master/v3_resources/streams.md#get-streamschannel.", "Hint: Here's an array of the Twitch.tv usernames of people who regularly stream coding: ["freecodecamp", "storbeck", "terakilobyte", "habathcx","RobotCaleb","comster404","brunofin","thomasballinger","noobs2ninjas","beohoff"]",  "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",   "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",  "When you are finished, click the "I've completed this challenge" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.", "If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.

Click here then add your link to your tweet's text" ],


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. Step : "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs." incorrectly to this url: It should link to: Unless that misdirection is meant to be tricky for the student ;)
This is a duplicate of
Kind of. This one is referring to a different page (challenge/zipline), but I did notice that all of the Ziplines have the same bug.
This was fixed ages ago, right? Please close.
This isn't actually fixed. The erroneous link still exists in these ziplines: Maybe it's not an issue because we'll be switching over to the content at soon? But I thought you should know that the issue hasn't actually been fixed yet. Actually, the only reason that it isn't an issue on the beta site is that none of the ziplines seem to link directly to the jquery json page.
This was fixed in prior to the branch being available through Now they seem to have changed how the ziplines look, so it wouldn't be an issue regardless. Since all changes seem to happen on the branch before ending up in production, issues that are fixed in should probably be considered fixed, even though it might be better to merge small fixes like this into production at a quicker rate than what is the current reality.
Thanks for the explanation! That makes sense. I'm not privy to staging, so I didn't realize it had been fixed there.

"Here are the user stories you must enable, and optional bonus user stories:", "User Story: As a user, I can click a button to show me a new random quote.", "Bonus User Story: As a user, I can press a button to tweet out a quote.",  "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",   "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",  "When you are finished, click the "I've completed this challenge" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.", "If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.

Click here then add your link to your tweet's text" ],


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. Step : "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs." incorrectly to this url: It should link to: Unless that misdirection is meant to be tricky for the student ;)
This is a duplicate of
Kind of. This one is referring to a different page (challenge/zipline), but I did notice that all of the Ziplines have the same bug.
This was fixed ages ago, right? Please close.
This isn't actually fixed. The erroneous link still exists in these ziplines: Maybe it's not an issue because we'll be switching over to the content at soon? But I thought you should know that the issue hasn't actually been fixed yet. Actually, the only reason that it isn't an issue on the beta site is that none of the ziplines seem to link directly to the jquery json page.
This was fixed in prior to the branch being available through Now they seem to have changed how the ziplines look, so it wouldn't be an issue regardless. Since all changes seem to happen on the branch before ending up in production, issues that are fixed in should probably be considered fixed, even though it might be better to merge small fixes like this into production at a quicker rate than what is the current reality.
Thanks for the explanation! That makes sense. I'm not privy to staging, so I didn't realize it had been fixed there.

"Bonus User Story: As a user, I can see an icon depending on the temperature..", "Bonus User Story: As a user, I see a different background image depending on the temperature (e.g. snowy mountain, hot desert).", "Bonus User Story: As a user, I can push a button to toggle between Fahrenheit and Celsius.",  "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",   "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",  "When you are finished, click the "I've completed this challenge" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.", "If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.

Click here then add your link to your tweet's text" ],


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. Step : "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs." incorrectly to this url: It should link to: Unless that misdirection is meant to be tricky for the student ;)
This is a duplicate of
Kind of. This one is referring to a different page (challenge/zipline), but I did notice that all of the Ziplines have the same bug.
This was fixed ages ago, right? Please close.
This isn't actually fixed. The erroneous link still exists in these ziplines: Maybe it's not an issue because we'll be switching over to the content at soon? But I thought you should know that the issue hasn't actually been fixed yet. Actually, the only reason that it isn't an issue on the beta site is that none of the ziplines seem to link directly to the jquery json page.
This was fixed in prior to the branch being available through Now they seem to have changed how the ziplines look, so it wouldn't be an issue regardless. Since all changes seem to happen on the branch before ending up in production, issues that are fixed in should probably be considered fixed, even though it might be better to merge small fixes like this into production at a quicker rate than what is the current reality.
Thanks for the explanation! That makes sense. I'm not privy to staging, so I didn't realize it had been fixed there.

"User Story: As a user, I can click a link to go directly to the post's discussion page.", "Bonus User Story: As a user, I can see how many upvotes each story has.", "Hint: Here's the Camper News Hot Stories API endpoint: http://www.freecodecamp.com/stories/hotStories.",  "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",   "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",  "When you are finished, click the "I've completed this challenge" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.", "If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.

Click here then add your link to your tweet's text" ],


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. Step : "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs." incorrectly to this url: It should link to: Unless that misdirection is meant to be tricky for the student ;)
This is a duplicate of
Kind of. This one is referring to a different page (challenge/zipline), but I did notice that all of the Ziplines have the same bug.
This was fixed ages ago, right? Please close.
This isn't actually fixed. The erroneous link still exists in these ziplines: Maybe it's not an issue because we'll be switching over to the content at soon? But I thought you should know that the issue hasn't actually been fixed yet. Actually, the only reason that it isn't an issue on the beta site is that none of the ziplines seem to link directly to the jquery json page.
This was fixed in prior to the branch being available through Now they seem to have changed how the ziplines look, so it wouldn't be an issue regardless. Since all changes seem to happen on the branch before ending up in production, issues that are fixed in should probably be considered fixed, even though it might be better to merge small fixes like this into production at a quicker rate than what is the current reality.
Thanks for the explanation! That makes sense. I'm not privy to staging, so I didn't realize it had been fixed there.

"Bonus User Story:As a user, I can click a button to see a random Wikipedia entry.", "Bonus User Story:As a user, when I type in the search box, I can see a dropdown menu with autocomplete options for matching Wikipedia entries.", "Hint: Here's an entry on using Wikipedia's API: http://www.mediawiki.org/wiki/API:Main_page.",  "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",   "Remember to use RSAP if you get stuck. Try using jQuery's $.getJSON() to consume APIs.",  "When you are finished, click the "I've completed this challenge" button and include a link to your CodePen. If you pair programmed, you should also include the Free Code Camp username of your pair.", "If you'd like immediate feedback on your project, click this button and paste in a link to your CodePen project. Otherwise, we'll review it before you start your nonprofit projects.

Click here then add your link to your tweet's text" ],


Question: In this lesson: In the second requirement the is included in the code tag markup which indicates it should be part of the href. It's minor but wrong and confusing for people new to html.

], "tests": [ "assert((/cat photos/gi).test($("a").text()), 'Your a element should have the anchor text of "cat photos"')",  "assert(/http://catphotoapp.com/gi.test($("a").attr("href")), 'You need an a element that links to http://catphotoapp.com.')",   "assert(/http://catphotoapp.com/gi.test($("a").attr("href")), 'You need an a element that links to http://catphotoapp.com.')",  "assert(editor.match(//g) && editor.match(//g).length === editor.match(/<a/g).length, 'Make sure your a element has a closing tag.')" ], "challengeSeed": [


Question: One of the instructions has the following: start this tutorial by running npm install how-to-npm it says to run the npm tutorial by typing 'npm install how-to-npm but you are actually supposed to just type 'how-to-npm'

"Wait for the workspace to finish processing and select it on the left sidebar, below the Create New Workspace button.", "Click the "Start Editing" button.", "In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",  "Run this command: npm install how-to-npm -g", "Now start this tutorial by running npm install how-to-npm@2.0.0.",   "Install how-to-npm with this command: npm install how-to-npm -g", "Now start the tutorial by running how-to-npm.",  "Note that you can resize the c9.io's windows by dragging their borders.", "Make sure that you are always in your project's "workspace" directory. You can always navigate back to this directory by running this command: cd ~/workspace.", "Note that you can only add dist tags to the specific version numbers published in steps 8 and 10. If you receive a 403 or 404 error, run how-to-npm and try again.",


Question:
Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <-- We use - for subtraction <---
merged to

"dashedName": "waypoint-add-two-numbers-with-javascript", "difficulty": "9.98141", "description": [  "In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions", "Let's try a few of the most commonly used ones now", "We use +for addition",   "In JavaScript whole numbers (called integers) can be easily used to perform mathematical functions.", "Let's try a few of the most commonly used ones now.", "We use +for addition.",  "Replace the 0with correct number to achieve the result in the comment." ], "tests": [


Question:
Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <-- We use - for subtraction <---
merged to

"dashedName": "waypoint-subtract-one-number-from-another-with-javascript", "difficulty": "9.98142", "description": [  "In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions", "Let's try a few of the most commonly used ones now", "We use -for subtraction",   "In JavaScript whole numbers (called integers) can be easily used to perform mathematical functions.", "Let's try a few of the most commonly used ones now.", "We use -for subtraction.",  "Replace the 0with correct number to achieve the result in the comment." ], "tests": [


Question:
Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <-- We use - for subtraction <---
merged to

"dashedName": "waypoint-multiply-two-numbers-with-javascript", "difficulty": "9.98143", "description": [  "In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions", "Let's try a few of the most commonly used ones now", "We use *for multiplication",   "In JavaScript whole numbers (called integers) can be easily used to perform mathematical functions.", "Let's try a few of the most commonly used ones now.", "We use *for multiplication.",  "Replace the 0with correct number to achieve the result in the comment." ], "tests": [


Question:
Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <-- We use - for subtraction <---
merged to

"dashedName": "waypoint-divide-one-number-by-another-with-javascript", "difficulty": "9.9814", "description": [  "In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions", "Let's try a few of the most commonly used ones now", "We use /for division",   "In JavaScript whole numbers (called integers) can be easily used to perform mathematical functions.", "Let's try a few of the most commonly used ones now.", "We use /for division.",  "Replace the 0with correct number to achieve the result in the comment." ], "tests": [


Question:
Challenge has an issue. In JavaScript whole numbers (called integers) can be easily used to preform mathematical functions <-- Let's try a few of the most commonly used ones now <-- We use - for subtraction <---
merged to

"dashedName": "waypoint-create-decimal-numbers-with-javascript", "difficulty": "9.9815", "description": [  "in JavaScript we can can work with decimal numbers",   "In JavaScript we can can work with decimal numbers.",  "Let's create a variable myDecimal and give it a decimal value." ], "tests": [


Question:
! Same with the other waypoints that ask for a hex code that includes alpha chars.
Green worked fine.. blue has case issue.

], "tests": [ "assert($("body").css("background-color") === "rgb(255, 0, 0)", 'Give your body element the background-color of red.')",  "assert(editor.match(/#FF0000/g) && editor.match(/#FF0000/g).length > 0, 'Use the hex code for the color red instead of the word red. For example body { color: #FF0000; }.')"   "assert(editor.match(/#FF0000/ig) && editor.match(/#FF0000/ig).length > 0, 'Use the hex code for the color red instead of the word red. For example body { color: #FF0000; }.')"  ], "challengeSeed": [ "


Question:
! Same with the other waypoints that ask for a hex code that includes alpha chars.
Green worked fine.. blue has case issue.

], "tests": [ "assert($("body").css("background-color") === "rgb(0, 0, 255)", 'Give your body element the background-color of blue.')",  "assert(editor.match(/#0000FF/g) && editor.match(/#0000FF/g).length > 0, 'Use the hex code for the color blue instead of the word blue. For example body { color: #0000FF; }.')"   "assert(editor.match(/#0000FF/ig) && editor.match(/#0000FF/ig).length > 0, 'Use the hex code for the color blue instead of the word blue. For example body { color: #0000FF; }.')"  ], "challengeSeed": [ "


Question:
! Same with the other waypoints that ask for a hex code that includes alpha chars.
Green worked fine.. blue has case issue.

], "tests": [ "assert($("body").css("background-color") === "rgb(255, 165, 0)", 'Give your body element the background-color of orange.')",  "assert(editor.match(/#FFA500/g) && editor.match(/#FFA500/g).length > 0, 'Use the hex code for the color orange instead of the word orange. For example body { color: #FFA500; }.')"   "assert(editor.match(/#FFA500/ig) && editor.match(/#FFA500/ig).length > 0, 'Use the hex code for the color orange instead of the word orange. For example body { color: #FFA500; }.')"  ], "challengeSeed": [ "


Question: Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. "Another type of JavaScript loop is called a "while loop" because it runs "while" something is true, and stops once that something is no longer true." Should probably read as: "Another type of JavaScript loop is called a "while loop", because it runs "while" something is true and stops once that something is no longer true." Commas separate complete sentences, or act as a pause.

"difficulty":"9.9825", "description":[ "You can run the same code multiple times by using a loop.",  "Another type of JavaScript loop is called a "while loop" because it runs "while" something is true, and stops once that something is no longer true.",   "Another type of JavaScript loop is called a "while loop", because it runs "while" something is true and stops once that something is no longer true.",  "var ourArray = [];", "var i = 0;", "while(i < 5) {",


Question: In waypoint description there is a word with missing letter "r" and wrong letter - "a" instead "e" . I don't know English well, therefore this typo a slightly confused me:) !

"g means that we want to search the entire string for this pattern.", "i means that we want to ignore the case (uppercase or lowercase) when searching for the pattern.", "Regular expressions are usually surrounded by / symbols.",  "Let's try selecting all the occurances of the word and in the string George Boole and Alan Turing went to the shop and got some milk. We can do this by replacing the .+ part of our regular expression with the current regular expression with the word and."   "Let's try selecting all the occurrences of the word and in the string George Boole and Alan Turing went to the shop and got some milk. We can do this by replacing the .+ part of our regular expression with the current regular expression with the word and."  ], "tests":[ "assert(test==2, 'Your regular expression should find two occurrences of the word and');",


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. There seems to be a conflict between the last paragraph above the "Go to Next Challenge" button, and the first test-item below the "Reset/Help/Bug" buttons (see screenshot, below). It is not clear if the <div class="well"'s should go inside the <div class="col-xs-6"'s, or vice versa. If I were to follow ALL the directions to the letter, I'd have two <div class="col-xs-6"'s nested inside each of two <div class="well"'s, each of which is inside an outer <div class="col-xs-6". I think this is just a text-editing problem, because my code passes when I did what I expected the waypoint to be looking for: an empty <div class="well"inside each of the previously-placed <div class="col-xs-6"'s; this is included in the screenshot, as well. Also, I am fairly the text is missing a "<", where I've sloppily drawn it in on my screenshot. !
I ran into this also. The challenge validates when you follow the instructions in the explanatory text. It does not validate when you only follow the instructions in the checkpoints.

"Nest one div element with the class well within each of your col-xs-6 div elements." ], "tests": [  "assert($("div").length > 4, 'Add two div elements inside your div class="well"> element both with the class col-xs-6')",   "assert($("div").length > 4, 'Add a div element with the class well inside each of your div class="col-xs-6"> elements')",  "assert($("div.col-xs-6").children("div.well").length > 1, 'Nest both of your div class="col-xs-6" elements within your div class="row" element.')", "assert(editor.match(/
/g) && editor.match(/<div/g) && editor.match(/
/g).length === editor.match(/<div/g).length, 'Make sure all your div elements have closing tags.')" ],


Question: Challenge has an issue. This is backwards and should read: "Add two div elements inside your "col-xs-6" elements both with the class "well" - or something similar. !


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. step 9 says Install how-to-npm with this command: npm install -g git-it. it looks like we are installing something called git-it instead of how-to-npm. As before, if I am incorrect please disregard this issue and just close. Just trying to do what I can for you guys. Love this site!
Hey thanks for posting an issue! It looks like you are right! I believe the step should say
That's what it looked like to me to. It seems that the command was copied from the next page when you do actually have to install how-to-npm. Btw, now that I have done a lot of the free code camp challenges, how would I go about starting to contribute to the project? I would love to help out with the code or issues or anything really.
Awesome! Just jump right in :smile:! Maybe start with putting in a pull request for this issue? Feel free to ping me in gitter if you want to chat about this further (so as to not pollute this issue with conversation)
Dear camper, your issue is related to: Please see .
I checked when I was creating the pull request to fix this issue and it seems that the how-to-npm part of it is already fixed.

"Choose Node.js in the selection area below the name field.", "Click the Create button. Then click into your new workspace.", "In the lower right hand corner you should see a terminal window. In this window use the following commands. You don't need to know what these mean at this point.",  "Install how-to-npm with this command: npm install -g git-it",   "Install git-it with this command: npm install -g git-it",  "Now start the tutorial by running git-it.", "Note that you can resize the c9.io's windows by dragging their borders.", "Make sure that you are always in your project's "workspace" directory. You can always navigate back to this directory by running this command: cd ~/workspace.",


Question:
Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. s - captures much more than spaces as the lesson implies, a better description that talks about what characters white space, as the title hints at, includes should be used.
Thanks for pointing this out. I agree, feel free to for this.

}, { "id":"cf1111c1c12feddfaeb8bdef",  "title": "Find White Space with Regular Expressions",   "title": "Find Whitespace with Regular Expressions",  "difficulty":"9.986", "description":[  "We can also use selectors like s to find spaces in a string.",   "We can also use selectors like s to find whitespace in a string.", "The whitespace characters are " " (space), r (carriage return), n (newline), t (tab), and f (form feed).",  "It is used like this:", "/s+/g",  "Select all the spaces in the sentence string."   "Select all the whitespace characters in the sentence string."  ], "tests":[ "assert(test === 7, 'message: Your RegEx should have found seven spaces in the testString.');",


Question:
On "Here's an example of how you would use the children() function to give the children of your left-well element the background color of blue : $("#left-well").children().css("color", "blue")" Shouldn't it just be color of blue instead of background color of blue?
thank you for pointing this out!!

"Many HTML elements have children which inherit their properties from their parent HTML elements.", "For example, every HTML element is a child of your body element, and your "jQuery Playground" h3 element is a child of your <div class="container-fluid"&#62 element.", "jQuery has a function called children() that allows you to access the children of whichever element you've selected.",  "Here's an example of how you would use the children() function to give the children of your left-well element the background color of blue: $("#left-well").children().css("color", "blue")",   "Here's an example of how you would use the children() function to give the children of your left-well element the color of blue: $("#left-well").children().css("color", "blue")",  "Give all the children of your #right-well element a color of green." ], "tests": [


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

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


Question:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Windows NT 10.0; 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: Issue: Properties box says: "Let's delete the "tails" property from myDog." Test success statement: "Delete the property "bark" from myDog." Test succeeds on deleting bark property, not tails.
I noticed that too !

"Let's delete the "tails" property from myDog." ], "tests": [  "assert(myDog.bark === undefined, 'message: Delete the property "bark" from myDog.');"   "assert(myDog.tails === undefined, 'message: Delete the property "tails" from myDog.');"  ], "challengeSeed": [ "var ourDog = {",


Question:
Should be "become" I would fix it but I'm not sure where this file is located. !
closed. Fixed with

[ "http://i.imgur.com/EoTfOyC.jpg", "An image of some of our campers coding together in Montreal.", <del> "Keep practicing coding every day and hanging out with other people who code, and you will becoming a job-ready coder.", </del> <ins> "Keep practicing coding every day and hanging out with other people who code, and you will become a job-ready coder.", </ins> "" ], [


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"challenges": [ { "id": "bb000000000000000000001", <del> "title":  "Trigger Click Events with jQuery", </del> <ins> "title": "Trigger Click Events with jQuery", </ins> "description": [ "In this section, we'll learn how to get data from APIs. APIs - or Application Programming Interfaces - are tools that computers use to communicate with one another.", "We'll also learn how to update HTML with the data we get from these APIs using a technology called Ajax.",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Activa eventos de pulsación con jQuery", "descriptionEs": [ "En esta sección, vamos a aprender cómo obtener datos de las APIs. Las APIs - o interfaces de programación de aplicaciones - son herramientas que utilizan los computadores para comunicarse entre sí.", "También aprenderemos cómo actualizar HTML con los datos que obtenemos de estas API usando una tecnología llamada Ajax.", "En primer lugar, vamos a revisar lo que hace la función $(document).ready(). Esta función hace que todo el código dentro de ella se ejecute sólo hasta que nuestra página ha sido cargada.", "Hagamos que nuestro botón "Get message" cambie el texto del elemento con clase message.", "Antes de poder hacer esto, tenemos que implementar un evento de pulsación dentro de nuestra función $(document).ready(), añadiendo este código:", "$("#getMessage").on("click", function(){", "", "});" ]  }, { "id": "bc000000000000000000001",  "title":  "Change Text with Click Events",   "title": "Change Text with Click Events",  "description": [ "When our click event happens, we can use Ajax to update an HTML element.", "Let's make it so that when a user clicks the "Get Message" button, we change the text of the element with the class message to say "Here is the message".",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Cambia texto con eventos de pulsación", "descriptionEs": [ "Cuando nuestro evento de pulsación ocurre, podemos utilizar Ajax para actualizar un elemento HTML.", "Hagamos que cuando un usuario pulse el botón "Get Message", el texto del elemento con la clase message cambie para decir "Here is the message".", "Podemos hacerlo añadiendo el siguiente código dentro de nuestro evento de pulsación:", "  $(".message").html("Here is the message");" ]  }, { "id": "bb000000000000000000002",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Obtén JSON con el método getJSON de jQuery", "descriptionEs": [ "También puedes solicitar los datos de una fuente externa. Aquí es donde entran en juego las API. ", "Recuerda que las API - o interfaces de programación de aplicaciones - son herramientas que utilizan los ordenadores para comunicarse entre sí.", "La mayoría de las API para el web transfieren datos en un formato llamado JSON. JSON significa notación de objeto JavaScript (JavaScript Object Notation).", "Tú ya has usado JSON al crear objetos en JavaScript. JSON no es más que las propiedades del objeto y sus valores actuales, intercalados entre un { y un }. ", "Estas propiedades y sus valores a menudo se denominan " pares llave-valor".", "Vamos a obtener el JSON de la API de fotos de gato de Free Code Camp.", "Aquí está el código que puedes poner en tu evento de pulsación para lograrlo:", "  $.getJSON("/json/cats.json", function(json) {", "    $(".message").html(JSON.stringify(json));", "  });", "Una vez lo añadas, pulsa el botón "Get Message". Su función Ajax sustituirá el texto "The message will go here" con la salida JSON en bruto de la API de fotos de gato de Free Code Camp." ]  }, { "id": "bb000000000000000000003",  "title":  "Convert JSON Data to HTML",   "title": "Convert JSON Data to HTML",  "description": [ "Now that we're getting data from a JSON API, let's display it in our HTML.", "We can use the .forEach() method to loop through our data and modify our HTML elements.",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
", "
", "
",  "      The message will go here","
",   "      The message will go here", "
",  "
", "
", "
",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Convierte datos JSON a datos HTML", "descriptionEs": [ "Ahora que estamos obteniendo datos de una API JSON, mostremóslos en nuestro HTML.", "Podemos usar el método .forEach() para recorrer nuestros datos y modificar nuestros elementos HTML.", "En primer lugar, vamos a declarar una variable llamada html con var html = "";.", "Después, iteremos a traveś de nuestro JSON, añadiendo más HTML a esa variable. Cuando se termina el ciclo, vamos a presentarla. ", "Aquí está el código que hace esto:", "json.forEach(function(val) {", "  var keys = Object.keys(val);", "  html += "<div class = 'cat'>";", "  keys.forEach(function(key) {", "    html += "<b>" + key + "</b>: " + val[key] + "<br>";", "  });", "  html += "</div><br>";", "});" ]  }, { "id": "bb000000000000000000004",  "title":  "Render Images from Data Sources",   "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.",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Presentar imágenes de fuentes de datos", "descriptionEs": [ "Tanto en el JSON que recibimos de la API de fotos de gato de Free Code Camp, como en ", "lo que hemos visto en las dos últimas lecciones, cada objeto en nuestro vector JSON contiene una llave imageLink con un valor que corresponde a la url de la imagen de un gato.", "Cuando estamos recorriendo estos objetos, usemos esta propiedad imageLink para visualizar la imagen en un elemento img.", "Aquí está el código que hace esto:", "  html += "<img src = '" + val.imageLink + "'>";" ]  }, { "id": "bb000000000000000000005",  "title":  "Prefilter JSON",   "title": "Prefilter JSON",  "description": [ "If we don't want to render every cat photo we get from our Free Code Camp's Cat Photo JSON API, we can pre-filter the json before we loop through it.", "Let's filter out the cat who's "id" key has a value of 1.",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Pre-filtra JSON", "descriptionEs": [ "Si no queremos presentar cada foto de gato que obtengamos de la API JSON de fotos de gato de Free Code Camp, podemos pre-filtrar el json antes de iterar a través de este.", "Vamos a filtrar el gato cuya llave "id" tiene un valor de 1.", "Aquí está el código para hacer esto:", "json = json.filter(function(val) {", "  return(val.id !== 1);", "});" ]  }, { "id": "bb000000000000000000006",  "title":  "Get Geo-location Data",   "title": "Get Geo-location Data",  "description": [ "Another cool thing we can do is access our user's current location. Every browser has a built in navigator that can give us this information.", "The navigator will get our user's current longitude and latitude.",


Question:
[x] Trigger Click Events with jQuery [x] Change Text with Click Events [x] Get JSON with the jQuery getJSON Method [x] Convert JSON Data to HTML [x] Render Images from Data Sources [x] Prefilter JSON [x] Get Geo-location Data
Trabajando en esta

"
" ], "challengeType": 0,  "type": "waypoint"   "type": "waypoint", "nameEs": "Recibir datos de Geo-localización", "descriptionEs": [ "Otra cosa interesante que podemos hacer es acceder a la ubicación actual de nuestros usuarios. Todos los navegadores han incorporado un geo-localizador que nos puede dar esta información. ", "El navegador puede obtener la longitud y latitud actual de nuestros usuarios.", "Como usuario verás un mensaje para permitir o evitar que el sitio conozca tu ubicación actual. El desafío se puede completar de cualquier manera, siempre y cuando el código sea correcto. ", "Si lo permites, verás que el texto en el teléfono de la derecha cambiará con tu latitud y longitud", "Aquí hay un código que hace esto:", "if (navigator.geolocation) {", "  navigator.geolocation.getCurrentPosition(function(position) {", "    $("#data").html("latitude: " + position.coords.latitude + "<br>longitude: " + position.coords.longitude);", "  });", "}" ]  } ] }


Question: Challenge [Bonfire: Validate US Telephone Numbers] Apparently the test case "telephoneCheck("555-555-5555") should return true." runs twice.

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


Question: Challenge [Bonfire: Validate US Telephone Numbers] Apparently the test case "telephoneCheck("555-555-5555") should return true." runs twice.

"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:
Challenge has an issue. User Agent is: <codeMozilla/5.0 (Macintosh; Intel Mac OS X ) 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: This is a very minor issue, almost trivial, but this Waypoint initializes the editor with an unnecessary space right under . The space can be found if you look back at the code It should be instead of .
Easy enough. I'll grab this one.
So maybe I'm doing something wrong but I just fetched the latest from "staging" and there is no space between the quotation marks in the latest version. This appears to have already been corrected.
Hmmm, I'm not sure why you're not seeing it on your end. I still see it on github and in the most recent staging I just pulled down.
My mistake, I hadn't pushed to my forked repo and I guess that was keeping the latest fetched files from showing. Should be fixed with

"var b = 2;", "", "// Only change code below this line", <del> " " </del> <ins> "" </ins> ], "tail": [ "(function(a,b){return "a = " + a + ", b = " + b;})(a,b);"


Question:
and have text in code tags within a blockquote already. The code tagged strings need to be removed. You can see them because they are highlighted again within the code block. Access MultiDimensional Arrays with Indexes: ! Understand String Immutability: !
Agreed, these just just be in the block quote.

"description": [ "In Javascript, String values are <dfn>immutable</dfn>, which means that they cannot be altered once created.", "For example, the following code:",  "
var myStr = "Bob";
myStr[0] = "J";
",   "
var myStr = "Bob";
myStr[0] = "J";
",  "cannot change the value of myStr to "Job", because the contents of myStr cannot be altered. Note that this does not mean that myStr cannot be changed, just that the individual characters of a <dfn>string literal</dfn> cannot be changed. The only way to change myStr would be to assign it with a new string, like this:",  "
var myStr = "Bob";
myStr = "Job";
",   "
var myStr = "Bob";
myStr = "Job";
",  "
Instructions
", "Correct the assignment to myStr to achieve the desired effect." ],


Question:
and have text in code tags within a blockquote already. The code tagged strings need to be removed. You can see them because they are highlighted again within the code block. Access MultiDimensional Arrays with Indexes: ! Understand String Immutability: !
Agreed, these just just be in the block quote.

"description": [ "One way to think of a <dfn>multi-dimensional</dfn> array, is as an array of arrays. When you use brackets to access your array, the first set of bracket refers to the entries in the outer-most array, and each subsequent level of brackets refers to the next level of entries inside.", "Example",  "
var arr = [
    [1,2,3],
    [4,5,6],
    [7,8,9],
    [[10,11,12], 13, 14]
];
arr[0]; // equals [1,2,3]
arr[1][2]; // equals 6
arr[3][0][1]; // equals 11
",   "
var arr = [
    [1,2,3],
    [4,5,6],
    [7,8,9],
    [[10,11,12], 13, 14]
];
arr[0]; // equals [1,2,3]
arr[1][2]; // equals 6
arr[3][0][1]; // equals 11
",  "
Instructions
", "Read from myArray using bracket notation so that myData is equal to 8" ],


Question:
[x] Learn D3 Challenges
what should we do with these ones? I guess they are not finished, so there's no point in translating that one line, or am I wrong?

"tests": [], "type": "waypoint", "challengeType": 3, <del> "nameEs": "Crea una aplicación de votaciones" </del> <ins> "nameEs": "Desafios para aprender D3", "descriptionEs": [] </ins> } ] }


Question:
[x] Learn D3 Challenges
what should we do with these ones? I guess they are not finished, so there's no point in translating that one line, or am I wrong?

"tests": [], "type": "waypoint", "challengeType": 3, <del> "nameEs": "Crea una aplicación de votaciones" </del> <ins> "nameEs": "Desafios para aprender React", "descriptionEs": [] </ins> } ] }


Question:
[x] Learn D3 Challenges
what should we do with these ones? I guess they are not finished, so there's no point in translating that one line, or am I wrong?

"tests": [], "type": "waypoint", "challengeType": 3, <del> "nameEs": "Crea una aplicación de votaciones" </del> <ins> "nameEs": "Desafios para aprender Sass", "descriptionEs": [] </ins> } ] }


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike", <del> "challengeType": 6 </del> <ins> "challengeType": 6, "nameEs": "JavaScript Lingo: MDN y Documentación", "descriptionEs": [ "Esta es una introducción básica a MDN y el concepto de la documentación.", "MDN, Mozilla Developer Network, es una fantástica colaboración de fuentes abiertas que documenta no sólo JavaScript, sino muchos otros lenguajes y temas. Si no has oído hablar de ellos, deberías darles un vistazo ahora. Personalmente obtengo mucha información de developer.mozilla.org/en-US/docs/Web/JavaScript ", "Cuando digo documentación, estoy hablando acerca de la información que se proporciona sobre el producto a sus usuarios. La documentación de MDN no necesariamente está escrita por la gente detrás de JS. Brendan Eich creó JS en 1995, pero hoy en día el proyecto continúa creciendo gracias a un esfuerzo comunitario. ", "A medida que continúes aprendiendo JavaScript, jQuery, y prácticamente cualquier otro lenguaje o servicio para desarrollo o programación, la documentación será tu amiga.", "Cuanto más rápido te sientas cómodo leyendo y referenciando documentación, más rápido crecerás como desarrollador.", "Estos vídeos no van a enseñarte JavaScript - te presentan términos y conceptos que serán valiosos a medida que continúes practicando y aprendiendo." ] </ins> }, { "id": "56b15f15632298c12f31518d",


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike",  "challengeType": 6   "challengeType": 6, "nameEs": "JavaScript Lingo: Tipos de valores", "descriptionEs": [ "Aprende sobre los tres tipos más básicos de valores: Booleanos, cadenas y números", "Un booleano es un valor true (verdadero) o false (falso). Estas palabras son especiales y reservadas. No puedes nombrar a una variable como "true", porque esa palabra es ya universal como un valor lógico (así como lo es "false"). ", "Una cadena es un conjunto de caracteres que se establecen entre apóstrofes (') o entre comillas ("). Una cadena puede ser "true", siempre y cuando sea con comillas o con apóstrofes. ", "Los números se explican por sí mismos - un número es un valor que se compone sólo de dígitos, aunque también puede contener un decimal o un signo negativo." ]  }, { "id": "56b15f15632298c12f31518b",


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike",  "challengeType": 6   "challengeType": 6, "nameEs": "JavaScript Lingo: Variables y capitalizaciónCamello", "descriptionEs": [ "Vamos a cubrir lo que constituye una variable, y el razonamiento detrás de la capitalizaciónCamello (camelCase).", "Una variable, también conocida como una 'var', es el nombre o el espacio para un booleano, una cadena, un número, u otra pieza de información estática.", "Puedes usar las Herramientas de desarrollo de Google para inspeccionar la página principal de FreeCodeCamp y buscar algunas variables.", "Tu 'declaras' variables por primera vez con var en frente de ella, pero después puedes referenciarla más adelante en tu programa.", "capitalizaciónCamello es una forma en la que juntas varias palabras y aún así las mantienes legibles. La primera letra de la primera palabra va en minúsculas al igual que el resto de la primera palabra, pero la primera letra de cada palabra que siga se escribe en mayúsculas. No hay espacios. Ejemplos: brianaAmaSusMascotas, laMejorComidaEsElQueso, y valeLaPenaAprenderProgramacion.", "Al asignar un nombre de variable, usa capitalizaciónCamello. Además, trata de mantener los nombres descriptivos y cortos para que los demás (¡e incluso tu!) puedan entender a lo que se refiere la variable simplemente por el nombre." ]  }, { "id": "56b15f15632298c12f31518a",


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike",  "challengeType": 6   "challengeType": 6, "nameEs": "JavaScript Lingo: Vectores y objetos", "descriptionEs": [ "Si desea almacenar más de una pieza de información en una variable, puedes hacerlo mediante la creación de un vector o de un objeto.", "** Exención de responsabilidad: Los objetos de JS no son exactamente lo mismo que los objetos en otros lenguajes. Vamos a discutir aquí objetos con respecto a JS. ", "Los vectores son conjuntos de valores entre [corchetes]. Los valores se separan con comas. Cada valor puede ser booleano, cadena, número, o incluso otro vector. A esto último le llamamos vector anidado. A un vector compuesto por vectores de la misma longitud le llamamos matriz. ", "Los objetos son un tipo de datos que pueden verse o comportarse como un vector, en la medida que se trata de más valores almacenados en una variable de una manera organizada. Oirás que un objeto se puede representar en JSON, y con frecuencia cuando haces llamadas a la API de algunos sitios (para obtener información que necesitas mostrar en tu propia página) está será devuelta en JSON. ", "Un ejemplo de la notación de objetos es:  var obj = { 'nombre': 'Briana', 'comida': 'queso', 'perro': 'Maurice'};", "Fíjate que un objeto se encierra entre llaves { ... }, que los diferentes atributos se separan por comas, que cada atributo consta de una palabra llave y de un valor. Por ejemplo son llaves 'nombre', 'comida' y 'perro' y sus respectivos valores son 'Briana', 'queso' y 'Maurice'. En este ejmplo todos los valores fueron cadenas, aunque también son válidos booleanos, números y otros tipos de datos." ]  }, { "id": "56b15f15632298c12f315189",


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike",  "challengeType": 6   "challengeType": 6, "nameEs": "JavaScript Lingo: Encontrando e indexando valores en vectores", "descriptionEs": [ "Hay muchas razones por las que puedes necesitar acceder a una determinada pieza de información al interior de un conjunto más amplio, lo cual haces referenciando su índice.", "No vamos a entrar en la sintaxis, pero debes saber que el primer elemento en un vector tiene en realidad el índice 0.", "Esto también aplica para cadenas y objetos. Todos estos índices comienzan en 0, por lo que si en tu programa usas miVector[2], realmente vas a obtener la tercera pieza de información del vector miVector." ]  }, { "id": "56b15f15632298c12f315188",


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike", <del> "challengeType": 6 </del> <ins> "challengeType": 6, "nameEs": "JavaScript Lingo: Manipulación de los datos", "descriptionEs": [ "Métodos y funciones son formas con las que puedes modificar variables u otros conjuntos de información.", "Los métodos están integrados en JavaScript, y te familiarizarás con estos cuando realices los desafíos sobre algoritmos.", "Me gustaría sugerirte dar un vistazo a MDN (Mozilla Developer Network que discutimos en el primer video) para que te familiarices con la cantidad y el potencial general de los métodos que existen. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Methods_Index", "Los ejemplos incluyen <code>.split (' ')</code>, que convertirá una cadena en un vector y puede hacerlo de muchas maneras diferentes. Los métodos son de gran alcance - muchas veces cuando quieres que tu programa haga algo, ya habrá un método para eso.", "Las funciones, al igual que las variables, son algo que tu defines y creas.", "Durante tu práctica con algoritmos en FreeCodeCamp, vas a crear funciones que reciben una determinada pieza de información y la manipulan de la forma que elijas.", "Vas a estar más familiarizado con la sintaxis, pero por ahora, sólo recuerda que con los métodos y funciones puedes hacer casi cualquier cosa con tu código." ] </ins> }, { "id": "56b15f15632298c12f315187",


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike",  "challengeType": 6   "challengeType": 6, "nameEs": "JavaScript Lingo: Matemáticas", "descriptionEs": [ "Hay un objeto estático de nombre 'Math' en JS con muchos propiedades y métodos incluidos.", "Vas a querer investigar más de este cuando manipules números. Consulta la documentación de MDN antes de escribir tus propias funciones, pues ya podrían estar definidas allí. ", "Los ejemplos incluyen Math.random() que devolverá un número aleatorio en un rango y Math.round() que redondeará el número decimal que reciba al entero más cercano.", "Yo utilicé Math.random() cuando construí el generador de citas aleatorias como proyecto de desarrollo de interfaces en FreeCodeCamp.", "Cuando trabajes con números, también debes estar consciente de que JS tiene un atributo interesante llamado 'formato de coma flotante'.", "Dependiendo de la cantidad de números, su tamaño y la cantidad de cálculos, JS puede devolver un número que es inexacto en 0,00004.", "Hay maneras de evitar esto, y en general no plantean problemas, pero es algo que debes tener en cuenta si te encuentras con algunos problemas que parecen no tienen sentido." ]  }, { "id": "56b15f15632298c12f315186",


Question:
[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one

] ], "type": "hike", <del> "challengeType": 6 </del> <ins> "challengeType": 6, "nameEs": "JavaScript Lingo: Ciclos", "descriptionEs": [ "Si hay un conjunto de valores (vamos a utilizar un vector en este ejemplo, pero no tiene que ser así) y deseas realizar la misma operación a cada valor del conjunto, puedes usar algo llamado ciclo. ", "Los ciclos tienen una sintaxis compleja a la que inicialmente es difícil acostumbrarse, pero una vez que la entiendas, son de gran utilidad. Yo usé ciclos en muchas de mis soluciones. ", "No es necesario que entiendas todo aquí - sólo que sepas que existen ciclos cuando necesitas recorrer un conjunto de datos y que pueden reducir la cantidad de código que debes escribir." ] </ins> }, { "id": "56b15f15632298c12f315185",