diff --git a/.snyk b/.snyk index 9daf4f36d6..6e1a16cd62 100644 --- a/.snyk +++ b/.snyk @@ -15,6 +15,14 @@ patch: patched: '2016-07-09T00:55:04.882Z' - gulp > vinyl-fs > glob-watcher > gaze > globule > glob > minimatch: patched: '2016-07-09T00:55:04.882Z' + - gulp-nodemon > gulp > vinyl-fs > glob-stream > minimatch: + patched: '2016-07-11T14:56:14.310Z' + - gulp-nodemon > gulp > vinyl-fs > glob-stream > glob > minimatch: + patched: '2016-07-11T14:56:14.310Z' + - gulp-nodemon > gulp > vinyl-fs > glob-watcher > gaze > globule > minimatch: + patched: '2016-07-11T14:56:14.310Z' + - gulp-nodemon > gulp > vinyl-fs > glob-watcher > gaze > globule > glob > minimatch: + patched: '2016-07-11T14:56:14.310Z' 'npm:uglify-js:20151024': - jade > transformers > uglify-js: patched: '2016-07-09T00:55:04.882Z' diff --git a/client/commonFramework/display-test-results.js b/client/commonFramework/display-test-results.js index 0647384c87..df09d26734 100644 --- a/client/commonFramework/display-test-results.js +++ b/client/commonFramework/display-test-results.js @@ -2,7 +2,6 @@ window.common = (function({ $, common = { init: [] }}) { common.displayTestResults = function displayTestResults(data = [], down) { $('#testSuite').children().remove(); - $('#testSuite').fadeIn('slow'); data.forEach(({ err = false, text = '' }) => { var iconClass = err ? '"ion-close-circled big-error-icon"' : diff --git a/client/commonFramework/end.js b/client/commonFramework/end.js index 149ef4e777..7dec122ff7 100644 --- a/client/commonFramework/end.js +++ b/client/commonFramework/end.js @@ -90,7 +90,6 @@ $(document).ready(function() { common.submitBtn$ ) .flatMap(() => { - $('#testSuite').fadeOut('slow'); common.appendToOutputDisplay('\n// testing challenge...'); return common.executeChallenge$() .map(({ tests, ...rest }) => { diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index 74c127c902..3f8638d859 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -1766,7 +1766,7 @@ "id": "56592a60ddddeae28f7aa8e1", "title": "Access Multi-Dimensional Arrays With Indexes", "description": [ - "One way to think of a multi-dimensional 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 (the first level) array, and each additional pair of brackets refers to the next level of entries inside.", + "One way to think of a multi-dimensional array, is as an array of arrays. When you use brackets to access your array, the first set of brackets refers to the entries in the outer-most (the first level) array, and each additional pair 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[3]; // equals [[10,11,12], 13, 14]
arr[3][0]; // equals [10,11,12]
arr[3][0][1]; // equals 11
", "

Instructions

", @@ -2052,7 +2052,7 @@ "

Instructions

", "
  1. Create a function called reusableFunction which prints \"Hi World\" to the dev console.
  2. Call the function.
" ], - "head": [ + "head": [ "var logOutput = \"\";", "var originalConsole = console", "function capture() {", @@ -4513,15 +4513,15 @@ "description": [ "You are given a JSON object representing a part of your musical album collection. Each album has several properties and a unique id number as its key. Not all albums have complete information.", "Write a function which takes an album's id (like 2548), a property prop (like \"artist\" or \"tracks\"), and a value (like \"Addicted to Love\") to modify the data in this collection.", - "If prop isn't \"tracks\" and value isn't blank, update or set the value for that record album's property.", + "If prop isn't \"tracks\" and value isn't empty (\"\"), update or set the value for that record album's property.", "Your function must always return the entire collection object.", "There are several rules for handling incomplete data:", "If prop is \"tracks\" but the album doesn't have a \"tracks\" property, create an empty array before adding the new value to the album's corresponding property.", - "If prop is \"tracks\" and value isn't blank, push the value onto the end of the album's existing tracks array.", - "If value is blank, delete that property from the album.", + "If prop is \"tracks\" and value isn't empty (\"\"), push the value onto the end of the album's existing tracks array.", + "If value is empty (\"\"), delete the given prop property from the album.", "Hints
Use bracket notation when accessing object properties with variables.", "Push is an array method you can read about on Mozilla Developer Network.", - "You may refer back to Manipulating Complex ObjectsIntroducing JavaScript Object Notation (JSON) for a refresher." + "You may refer back to Manipulating Complex Objects Introducing JavaScript Object Notation (JSON) for a refresher." ], "releasedOn": "January 1, 2016", "challengeSeed": [ @@ -4556,8 +4556,8 @@ "", "// Only change code below this line", "function updateRecords(id, prop, value) {", - "", - "", + " ", + " ", " return collection;", "}", "", @@ -4566,10 +4566,10 @@ "" ], "tail": [ - "(function(x) { return \"collection = \\n\" + JSON.stringify(x, '\\n', 2); })(collection);" + ";(function(x) { return \"collection = \\n\" + JSON.stringify(x, '\\n', 2); })(collection);" ], "solutions": [ - "var collection = {\n 2548: {\n album: \"Slippery When Wet\",\n artist: \"Bon Jovi\",\n tracks: [ \n \"Let It Rock\", \n \"You Give Love a Bad Name\" \n ]\n },\n 2468: {\n album: \"1999\",\n artist: \"Prince\",\n tracks: [ \n \"1999\", \n \"Little Red Corvette\" \n ]\n },\n 1245: {\n artist: \"Robert Palmer\",\n tracks: [ ]\n },\n 5439: {\n album: \"ABBA Gold\"\n }\n};\n// Keep a copy of the collection for tests\nvar collectionCopy = JSON.parse(JSON.stringify(collection));\n\n// Only change code below this line\nfunction updateRecords(id, prop, value) {\n if(value !== \"\") {\n if(prop === \"tracks\") {\n collection[id][prop]= collection[id][prop] || [];\n collection[id][prop].push(value);\n } else {\n collection[id][prop] = value;\n }\n } else {\n delete collection[id][prop];\n }\n\n return collection;\n}" + "var collection = {\n 2548: {\n album: \"Slippery When Wet\",\n artist: \"Bon Jovi\",\n tracks: [ \n \"Let It Rock\", \n \"You Give Love a Bad Name\" \n ]\n },\n 2468: {\n album: \"1999\",\n artist: \"Prince\",\n tracks: [ \n \"1999\", \n \"Little Red Corvette\" \n ]\n },\n 1245: {\n artist: \"Robert Palmer\",\n tracks: [ ]\n },\n 5439: {\n album: \"ABBA Gold\"\n }\n};\n// Keep a copy of the collection for tests\nvar collectionCopy = JSON.parse(JSON.stringify(collection));\n\n// Only change code below this line\nfunction updateRecords(id, prop, value) {\n if(value === \"\") delete collection[id][prop];\n else if(prop === \"tracks\") {\n collection[id][prop] = collection[id][prop] || [];\n collection[id][prop].push(value);\n } else {\n collection[id][prop] = value;\n }\n \n return collection;\n}" ], "tests": [ "collection = collectionCopy; assert(updateRecords(5439, \"artist\", \"ABBA\")[5439][\"artist\"] === \"ABBA\", 'message: After updateRecords(5439, \"artist\", \"ABBA\"), artist should be \"ABBA\"');", diff --git a/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json b/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json index e587c4c018..f363cf94eb 100644 --- a/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json +++ b/seed/challenges/01-front-end-development-certification/intermediate-bonfires.json @@ -280,6 +280,7 @@ "Translate the provided string to pig latin.", "Pig Latin takes the first consonant (or consonant cluster) of an English word, moves it to the end of the word and suffixes an \"ay\".", "If a word begins with a vowel you just add \"way\" to the end.", + "Input strings are guaranteed to be English words in all lowercase.", "Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code." ], "challengeSeed": [ @@ -728,7 +729,8 @@ "assert.deepEqual(typeof smallestCommons([1, 5]), 'number', 'message: smallestCommons([1, 5]) should return a number.');", "assert.deepEqual(smallestCommons([1, 5]), 60, 'message: smallestCommons([1, 5]) should return 60.');", "assert.deepEqual(smallestCommons([5, 1]), 60, 'message: smallestCommons([5, 1]) should return 60.');", - "assert.deepEqual(smallestCommons([1, 13]), 360360, 'message: smallestCommons([1, 13]) should return 360360.');" + "assert.deepEqual(smallestCommons([1, 13]), 360360, 'message: smallestCommons([1, 13]) should return 360360.');", + "assert.deepEqual(smallestCommons([23, 18]), 6056820, 'message: smallestCommons([23, 18]) should return 6056820.');" ], "type": "bonfire", "MDNlinks": [ diff --git a/seed/challenges/02-data-visualization-certification/data-visualization-certificate.json b/seed/challenges/02-data-visualization-certification/data-visualization-certificate.json index 678c907536..43a33a89fd 100644 --- a/seed/challenges/02-data-visualization-certification/data-visualization-certificate.json +++ b/seed/challenges/02-data-visualization-certification/data-visualization-certificate.json @@ -14,20 +14,20 @@ "" ], [ - "//i.imgur.com/HArFfMN.jpg", + "//i.imgur.com/woACUFX.png", "The definition of plagiarism: Plagiarism (noun) - copying someone else’s work and presenting it as your own without crediting them", "By clicking below, you pledge that all of your submitted code A) is code you or your pair personally wrote, or B) comes from open source libraries like jQuery, or C) has been clearly attributed to its original authors. You also give us permission to audit your challenge solutions and revoke your certificate if we discover evidence of plagiarism.", "#" ], [ - "//i.imgur.com/14F2Van.jpg", + "//i.imgur.com/nTuA3rZ.png", "An image of the text \"Data Visualization Certificate requirements\"", "Let's confirm that you have completed our React and D3.js projects. Click the button below to verify this.", "#" ], [ - "//i.imgur.com/16SIhHO.jpg", - "An image of the word \"Congratulations\"", + "//i.imgur.com/3Is4oV0.png", + "An image of the word \"Congratulations!\"", "Congratulations! We've added your Data Visualization Certificate to your portfolio page. Unless you choose to hide your solutions, this certificate will remain publicly visible and verifiable.", "" ] @@ -100,20 +100,20 @@ "" ], [ - "//i.imgur.com/HArFfMN.jpg", + "//i.imgur.com/swuEma9.png", "Plagio (nombre): acción y efecto de plagiar. Plagiar (verbo) - copiar en lo sustancial obras ajenas, dándolas como propias.", "Al pulsar el botón siguiente, juras que todo el código en tus soluciones a los desafíos A) es código que tú o tu compañero escribieron personalmente, o B) proviene de librerías de código abierto como jQuery, o C) ha sido claramente atribuido a sus autores originales. También nos otorgas el permiso para auditar tus soluciones a los desafíos y revocar tu certificado si encontramos evidencia de plagio.", "#" ], [ - "//i.imgur.com/14F2Van.jpg", - "Una imagen del texto \"Data Visualization Certificate requirements\"", + "//i.imgur.com/6b50POD.png", + "Una imagen del texto \"Los requisitos de Certificación de Visualización de datos\"", "Confirmemos que has completado todos nuestros proyectos en React y D3.js. Pulsa el botón siguiente para hacer la verificación.", "#" ], [ - "//i.imgur.com/16SIhHO.jpg", - "Una imagen de la palabra \"Congratulations\"", + "//i.imgur.com/PnFG11N.png", + "Una imagen de la palabra \"Felicitaciones!\"", "¡Felicitaciones! Hemos agregado tu certificado de Visualización de datos a tu portafolio. A menos que elijas no mostrar tus soluciones, este certificado será públicamente visible y verificable.", "" ] @@ -127,20 +127,20 @@ "" ], [ - "//i.imgur.com/HArFfMN.jpg", + "//i.imgur.com/iFL1xR1.png", "Une définition du plagiat : Plagiat (nom) – copier le travail d’un autre et le présenter comme étant le tien, sans mention de l’auteur original", "En cliquant si dessous, je garantie que tout le code que j’ai présenté A) est mon propre code ou celui de mon collaborateur, B) vient d’un projet open-source comme jQuery, ou C) contient les mentions nécessaires des auteurs. Vous nous donnez aussi la permission de vérifier vos solutions et de révoquer votre certificat en cas de détection de plagiat.", "#" ], [ - "//i.imgur.com/14F2Van.jpg", - "Une image du texte \"Data Visualization Certificate requirements\"", + "//i.imgur.com/0GZ0KHa.png", + "Une image du texte \"Les exigences de certification de visualisation de données\"", "On va confirmer maintenant que vous avez bien terminé nos projets de React et D3.js. Cliquez sur le bouton si dessous pour vérifier cela.", "#" ], [ - "//i.imgur.com/16SIhHO.jpg", - "Une image du mot \"Congratulations\"", + "//i.imgur.com/EJXMNIQ.png", + "Une image du mot \"Félicitations à vous!\"", "Félicitations! On vient d’ajouter votre Certificat de Visualisation de données à votre profile. Cette certificat est public et vérifiable, mais vous pouvez le cacher si vous désirer.", "" ] diff --git a/seed/challenges/04-video-challenges/computer-basics.json b/seed/challenges/04-video-challenges/computer-basics.json index a1e983eff8..ae034441f7 100644 --- a/seed/challenges/04-video-challenges/computer-basics.json +++ b/seed/challenges/04-video-challenges/computer-basics.json @@ -362,7 +362,7 @@ "In audio download, we talk about kilobits per second.", "In internet, we use megabits per second.", "In network speed, we talk about gigabits per second (one billion bits per second!).", - "The main takeaway here is that speed is usually measured in bits and size is measured in bytes.", + "The main takeaway here is that speed is usually measured in bits per second and size is measured in bytes.", "Additionally, if you have an internet speed that says however many bits per second, keep in mind they are talking about something 8 times less than bytes, how you are thinking about data." ], "challengeSeed": [ @@ -370,13 +370,13 @@ ], "tests": [ [ - "Data speed is measured in bits.", + "Data speed is measured in bits per second.", true ], [ "Data size is measured in bits.", false, - "Size is bytes and speed is bits." + "Size is bytes and speed is bits per second." ] ], "type": "hike", @@ -391,7 +391,7 @@ "En descarga de audio, hablamos de kilobits por segundo.", "En Internet, utilizamos megabits por segundo.", "En la velocidad de red, hablamos de gigabits por segundo (¡mil millones de bits por segundo!).", - "La conclusión principal es que la velocidad se mide generalmente en bits mientras que el tamaño se mide en bytes.", + "La conclusión principal es que la velocidad se mide generalmente en bits por segundo mientras que el tamaño se mide en bytes.", "Además, si tienes una velocidad de internet de cierta cantidad de bits por segundo, ten en cuenta que te están hablando de algo que es la octava parte de la cantidad en bytes, que es la manera típica como mides tamaños de datos." ], "titleEs": "Fundamentos básicos del computador: medición de la velocidad de datos" diff --git a/server/utils/resources.json b/server/utils/resources.json index 092d82895b..758c75b1c7 100644 --- a/server/utils/resources.json +++ b/server/utils/resources.json @@ -90,7 +90,6 @@ "You're heating up!", "Hasta la vista, challenge!", "Terminated.", - "Hodor!", "Off the hook!", "Thundercats, Hooo!", "Shiver me timbers!", diff --git a/server/views/home.jade b/server/views/home.jade index 68a25055a8..cf604d3110 100644 --- a/server/views/home.jade +++ b/server/views/home.jade @@ -20,7 +20,7 @@ block content img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg', alt='Get hired as a developer and start your software engineer career') p.large-p a(href='/stories') 2,000+ - |  campers now have developer jobs + |  people like you now have developer jobs .big-break .big-break .row diff --git a/server/views/resources/shop.jade b/server/views/resources/shop.jade index bc561c60fc..56b5cee752 100644 --- a/server/views/resources/shop.jade +++ b/server/views/resources/shop.jade @@ -62,7 +62,7 @@ block content .spacer img.img-responsive.img-center(src='//i.imgur.com/CR2dSql.jpg' alt='Eloquent JavaScript: A Modern Introduction to Programming book cover') .button-spacer - a.btn.signup-btn(href="//www.amazon.com/gp/product/1593272820/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593272820&linkCode=as2&tag=out0b4b-20&linkId=c1c6d7e0eed6ae696a4bffe7eb935711" onClick="ga('send', 'event', 'SHOP', 'SHOP-ELOQUENT-JAVASCRIPT', 'Eloquent JavaScript affiliate button clicked');" target='_blank') Buy "Elopquent JavaScript" on Amazon + a.btn.signup-btn(href="//www.amazon.com/gp/product/1593275846/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1593275846&linkCode=as2&tag=out0b4b-20&linkId=6870174eac22afca8e1c1ef5204f16ee" onClick="ga('send', 'event', 'SHOP', 'SHOP-ELOQUENT-JAVASCRIPT', 'Eloquent JavaScript affiliate button clicked');" target='_blank') Buy "Elopquent JavaScript" on Amazon .spacer hr .spacer