diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6214c43 --- /dev/null +++ b/.gitignore @@ -0,0 +1,80 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ diff --git a/README.md b/README.md index 18ce5f2..762c339 100644 --- a/README.md +++ b/README.md @@ -1 +1,222 @@ -# Code Challenges +# Code Katas + +Search / Filter solutions [here](https://code-katas.now.sh/) + +# Episodes + +## [Episode 23](./episode_023) + +[Watch on YouTube](https://www.youtube.com/watch?v=c_EREn-eF5s) + +* [remove-the-minimum](./episode_023/remove-the-minimum.js) - 7 kyu +* [rot13](./episode_023/rot13.js) - 5 kyu +* [strip-comments](./episode_023/strip-comments.js) - 4 kyu +* [title-case](./episode_023/title-case.js) - 6 kyu + +## [Episode 22](./episode_022) + +[Watch on YouTube](https://www.youtube.com/watch?v=xgW-due5ukM) + +* [delete-occurrences-of-an-element-if-it-occurs-more-than-n-times](./episode_022/delete-occurrences-of-an-element-if-it-occurs-more-than-n-times.js) - 6 kyu +* [regex-validate-pin-code](./episode_022/regex-validate-pin-code.js) - 7 kyu +* [tic-tac-toe-checker](./episode_022/tic-tac-toe-checker.js) - 5 kyu +* [vector-class](./episode_022/vector-class.js) - 5 kyu + +## [Episode 21](./episode_021) + +[Watch on YouTube](https://www.youtube.com/watch?v=LiD9TT--F5Y) + +* [did-i-finish-my-sudoku](./episode_021/did-i-finish-my-sudoku.js) - 5 kyu +* [distributing-candies](./episode_021/distributing-candies.js) - ??? kyu +* [vasya-clerk](./episode_021/vasya-clerk.js) - 6 kyu + +## [Episode 20](./episode_020) + +[Watch on YouTube](https://www.youtube.com/watch?v=NGcsIUBKHiI) + +* [halloween-sweets](./episode_020/halloween-sweets.js) - 5 kyu +* [pirate-code](./episode_020/pirate-code.js) - 7 kyu +* [trick-or-treat](./episode_020/trick-or-treat.js) - ??? kyu + +## [Episode 19](./episode_019) + +[Watch on YouTube](https://www.youtube.com/watch?v=EyyiM71-r18) + +* [bouncing-balls](./episode_019/bouncing-balls.js) - 6 kyu +* [most-consecutive-zeros](./episode_019/most-consecutive-zeros.js) - ??? kyu +* [number-combos](./episode_019/number-combos.js) - ??? kyu +* [pascalcase-into-snake-case](./episode_019/pascalcase-into-snake-case.js) - ??? kyu +* [sum-of-a-sequence](./episode_019/sum-of-a-sequence.js) - 7 kyu + +## [Episode 18](./episode_018) + +[Watch on YouTube](https://www.youtube.com/watch?v=qqznbb9xJa4) + +* [friend-or-foe](./episode_018/friend-or-foe.js) - 7 kyu +* [greed-is-good](./episode_018/greed-is-good.js) - 5 kyu +* [math-issues](./episode_018/math-issues.js) - 5 kyu +* [scratch](./episode_018/scratch.js) - ??? kyu +* [which-are-in](./episode_018/which-are-in.js) - 6 kyu + +## [Episode 17](./episode_017) + +[Watch on YouTube](https://www.youtube.com/watch?v=jFJGnX-q0Tc) + +* [double-cola](./episode_017/double-cola.js) - 5 kyu +* [exponential-comparison](./episode_017/exponential-comparison.js) - 6 kyu +* [ones-and-zeros](./episode_017/ones-and-zeros.js) - 7 kyu +* [square-every-digit](./episode_017/square-every-digit.js) - 7 kyu + +## [Episode 16](./episode_016) + +[Watch on YouTube](https://www.youtube.com/watch?v=BKBZLZ50xh8) + +* [message-from-alca](./episode_016/message-from-alca.js) - ??? kyu +* [replace-with-alphabet-position](./episode_016/replace-with-alphabet-position.js) - 6 kyu +* [valid-parentheses](./episode_016/valid-parentheses.js) - 5 kyu +* [youre-a-square](./episode_016/youre-a-square.js) - 7 kyu + +## [Episode 15](./episode_015) + +[Watch on YouTube](https://www.youtube.com/watch?v=R49EFycGF3s) + +* [dont-rely-on-luck](./episode_015/dont-rely-on-luck.js) - 6 kyu +* [find-the-capitals](./episode_015/find-the-capitals.js) - 7 kyu +* [range-extraction](./episode_015/range-extraction.js) - 4 kyu +* [the-hashtag-generator](./episode_015/the-hashtag-generator.js) - 5 kyu + +## [Episode 14](./episode_014) + +[Watch on YouTube](https://www.youtube.com/watch?v=dE5TV-TGfEo) + +* [duplicateEncode](./episode_014/duplicateEncode.js) - ??? kyu +* [memoizeFibonacci](./episode_014/memoizeFibonacci.js) - ??? kyu +* [snail](./episode_014/snail.js) - 4 kyu +* [twoToOne](./episode_014/twoToOne.js) - ??? kyu + +## [Episode 13](./episode_013) + +[Watch on YouTube](https://www.youtube.com/watch?v=_xud7qSXkOw) + +* [firstNonRepeatingCharacter](./episode_013/firstNonRepeatingCharacter.js) - ??? kyu +* [parity-outlier](./episode_013/parity-outlier.js) - ??? kyu +* [printer-errors](./episode_013/printer-errors.js) - 7 kyu +* [series-sum](./episode_013/series-sum.js) - ??? kyu + +## [Episode 12](./episode_012) + +[Watch on YouTube](https://www.youtube.com/watch?v=Ozp_PY1OOnw) + +* [format-string-names](./episode_012/format-string-names.js) - ??? kyu +* [pagination-helper](./episode_012/pagination-helper.js) - ??? kyu +* [sum-of-odd-numbers](./episode_012/sum-of-odd-numbers.js) - 7 kyu + +## [Episode 11](./episode_011) + +[Watch on YouTube](https://www.youtube.com/watch?v=bPTonTi42ic) + +* [counting-duplicates](./episode_011/counting-duplicates.js) - 6 kyu +* [square-digits](./episode_011/square-digits.js) - ??? kyu +* [weight-for-weight](./episode_011/weight-for-weight.js) - 5 kyu + +## [Episode 10](./episode_010) + +[Watch on YouTube](https://www.youtube.com/watch?v=6eoqEYc5SGI) + +* [find-divisors](./episode_010/find-divisors.js) - ??? kyu +* [pete-the-baker](./episode_010/pete-the-baker.js) - 5 kyu +* [spinning-words](./episode_010/spinning-words.js) - ??? kyu + +## [Episode 9](./episode_009) + +[Watch on YouTube](https://www.youtube.com/watch?v=0atKorB6tAI) + +* [character-recognition-mistakes](./episode_009/character-recognition-mistakes.js) - ??? kyu +* [narcissistic-numbers](./episode_009/narcissistic-numbers.js) - 7 kyu +* [nested-structure-compare](./episode_009/nested-structure-compare.js) - ??? kyu +* [regex-password](./episode_009/regex-password.js) - ??? kyu + +## [Episode 8](./episode_008) + +[Watch on YouTube](https://www.youtube.com/watch?v=M_K7azm9i6o) + +* [are-they-the-same](./episode_008/are-they-the-same.js) - 6 kyu +* [growth-population](./episode_008/growth-population.js) - ??? kyu +* [rot13](./episode_008/rot13.js) - 5 kyu +* [twice-linear](./episode_008/twice-linear.js) - 4 kyu +* [your-order-please](./episode_008/your-order-please.js) - 6 kyu + +## [Episode 7](./episode_007) + +[Watch on YouTube](https://www.youtube.com/watch?v=O5DmKHgFwjE) + +* [anagrams](./episode_007/anagrams.js) - null +* [camel-case](./episode_007/camel-case.js) - ??? kyu +* [categorize-new-member](./episode_007/categorize-new-member.js) - 7 kyu +* [isogram](./episode_007/isogram.js) - ??? kyu +* [multiples-of-3-and-5](./episode_007/multiples-of-3-and-5.js) - ??? kyu +* [priori-incantatem](./episode_007/priori-incantatem.js) - 4 kyu +* [rgb-to-hex](./episode_007/rgb-to-hex.js) - ??? kyu + +## [Episode 6](./episode_006) + +[Watch on YouTube](https://www.youtube.com/watch?v=mwoA9wjp7ec) + +* [calculating-with-functions](./episode_006/calculating-with-functions.js) - 5 kyu +* [digital-root](./episode_006/digital-root.js) - ??? kyu +* [dubstep](./episode_006/dubstep.js) - 6 kyu +* [odd-int](./episode_006/odd-int.js) - ??? kyu +* [reverse-polish-notation](./episode_006/reverse-polish-notation.js) - null +* [sum-of-numbers](./episode_006/sum-of-numbers.js) - null +* [zeros-to-end](./episode_006/zeros-to-end.js) - ??? kyu + +## [Episode 5](./episode_005) + +[Watch on YouTube](https://www.youtube.com/watch?v=S-h_tfwHQAQ) + +* [createPhoneNumber](./episode_005/createPhoneNumber.js) - ??? kyu +* [credit-card-mask](./episode_005/credit-card-mask.js) - 7 kyu +* [equal-sides-sum](./episode_005/equal-sides-sum.js) - ??? kyu +* [palindromeChainLength](./episode_005/palindromeChainLength.js) - ??? kyu +* [roman-numerals-encoder](./episode_005/roman-numerals-encoder.js) - 6 kyu +* [sum-of-two-lowest](./episode_005/sum-of-two-lowest.js) - ??? kyu + +## [Episode 4](./episode_004) + +[Watch on YouTube](https://www.youtube.com/watch?v=2ld5ndNkF2Q) + +* [count-the-smiley-faces](./episode_004/count-the-smiley-faces.js) - 6 kyu +* [human-readable-time](./episode_004/human-readable-time.js) - 5 kyu +* [list-filtering](./episode_004/list-filtering.js) - 7 kyu +* [maximum-subarray-sum](./episode_004/maximum-subarray-sum.js) - 5 kyu +* [scramblies](./episode_004/scramblies.js) - 5 kyu +* [sum-strings-as-numbers](./episode_004/sum-strings-as-numbers.js) - 4 kyu + +## [Episode 3](./episode_003) + +[Watch on YouTube](https://www.youtube.com/watch?v=Ms7L-aVN4Hc) + +* [dna-compliment](./episode_003/dna-compliment.js) - ??? kyu +* [iq-test](./episode_003/iq-test.js) - 6 kyu +* [pig-latin](./episode_003/pig-latin.js) - null +* [take-a-ten-minute-walk](./episode_003/take-a-ten-minute-walk.js) - 6 kyu +* [vowel-count](./episode_003/vowel-count.js) - 7 kyu + +## [Episode 2](./episode_002) + +[Watch on YouTube](https://www.youtube.com/watch?v=fH4w_xq2qao) + +* [exes-os](./episode_002/exes-os.js) - ??? kyu +* [fat-fingers](./episode_002/fat-fingers.js) - 6 kyu +* [jaden-case](./episode_002/jaden-case.js) - ??? kyu +* [sum-pairs](./episode_002/sum-pairs.js) - ??? kyu + +## [Episode 1](./episode_001) + +[Watch on YouTube](https://www.youtube.com/watch?v=Oq7r8metsD8) + +* [accum](./episode_001/accum.js) - ??? kyu +* [binary-addition](./episode_001/binary-addition.js) - 7 kyu +* [century-from-year](./episode_001/century-from-year.js) - 8 kyu +* [final-grade](./episode_001/final-grade.js) - ??? kyu +* [morse-code](./episode_001/morse-code.js) - ??? kyu diff --git a/episode_000/README.md b/episode_000/README.md new file mode 100644 index 0000000..a32027d --- /dev/null +++ b/episode_000/README.md @@ -0,0 +1 @@ +![](https://i.imgur.com/nm3ulgm.jpg) \ No newline at end of file diff --git a/episode_000/contents.md b/episode_000/contents.md new file mode 100644 index 0000000..c9c142a --- /dev/null +++ b/episode_000/contents.md @@ -0,0 +1,217 @@ + +## [Episode 23](./episode_023) + +[Watch on YouTube](https://www.youtube.com/watch?v=c_EREn-eF5s) + +* [remove-the-minimum](./episode_023/remove-the-minimum.js) - 7 kyu +* [rot13](./episode_023/rot13.js) - 5 kyu +* [strip-comments](./episode_023/strip-comments.js) - 4 kyu +* [title-case](./episode_023/title-case.js) - 6 kyu + +## [Episode 22](./episode_022) + +[Watch on YouTube](https://www.youtube.com/watch?v=xgW-due5ukM) + +* [delete-occurrences-of-an-element-if-it-occurs-more-than-n-times](./episode_022/delete-occurrences-of-an-element-if-it-occurs-more-than-n-times.js) - 6 kyu +* [regex-validate-pin-code](./episode_022/regex-validate-pin-code.js) - 7 kyu +* [tic-tac-toe-checker](./episode_022/tic-tac-toe-checker.js) - 5 kyu +* [vector-class](./episode_022/vector-class.js) - 5 kyu + +## [Episode 21](./episode_021) + +[Watch on YouTube](https://www.youtube.com/watch?v=LiD9TT--F5Y) + +* [did-i-finish-my-sudoku](./episode_021/did-i-finish-my-sudoku.js) - 5 kyu +* [distributing-candies](./episode_021/distributing-candies.js) - ??? kyu +* [vasya-clerk](./episode_021/vasya-clerk.js) - 6 kyu + +## [Episode 20](./episode_020) + +[Watch on YouTube](https://www.youtube.com/watch?v=NGcsIUBKHiI) + +* [halloween-sweets](./episode_020/halloween-sweets.js) - 5 kyu +* [pirate-code](./episode_020/pirate-code.js) - 7 kyu +* [trick-or-treat](./episode_020/trick-or-treat.js) - ??? kyu + +## [Episode 19](./episode_019) + +[Watch on YouTube](https://www.youtube.com/watch?v=EyyiM71-r18) + +* [bouncing-balls](./episode_019/bouncing-balls.js) - 6 kyu +* [most-consecutive-zeros](./episode_019/most-consecutive-zeros.js) - ??? kyu +* [number-combos](./episode_019/number-combos.js) - ??? kyu +* [pascalcase-into-snake-case](./episode_019/pascalcase-into-snake-case.js) - ??? kyu +* [sum-of-a-sequence](./episode_019/sum-of-a-sequence.js) - 7 kyu + +## [Episode 18](./episode_018) + +[Watch on YouTube](https://www.youtube.com/watch?v=qqznbb9xJa4) + +* [friend-or-foe](./episode_018/friend-or-foe.js) - 7 kyu +* [greed-is-good](./episode_018/greed-is-good.js) - 5 kyu +* [math-issues](./episode_018/math-issues.js) - 5 kyu +* [scratch](./episode_018/scratch.js) - ??? kyu +* [which-are-in](./episode_018/which-are-in.js) - 6 kyu + +## [Episode 17](./episode_017) + +[Watch on YouTube](https://www.youtube.com/watch?v=jFJGnX-q0Tc) + +* [double-cola](./episode_017/double-cola.js) - 5 kyu +* [exponential-comparison](./episode_017/exponential-comparison.js) - 6 kyu +* [ones-and-zeros](./episode_017/ones-and-zeros.js) - 7 kyu +* [square-every-digit](./episode_017/square-every-digit.js) - 7 kyu + +## [Episode 16](./episode_016) + +[Watch on YouTube](https://www.youtube.com/watch?v=BKBZLZ50xh8) + +* [message-from-alca](./episode_016/message-from-alca.js) - ??? kyu +* [replace-with-alphabet-position](./episode_016/replace-with-alphabet-position.js) - 6 kyu +* [valid-parentheses](./episode_016/valid-parentheses.js) - 5 kyu +* [youre-a-square](./episode_016/youre-a-square.js) - 7 kyu + +## [Episode 15](./episode_015) + +[Watch on YouTube](https://www.youtube.com/watch?v=R49EFycGF3s) + +* [dont-rely-on-luck](./episode_015/dont-rely-on-luck.js) - 6 kyu +* [find-the-capitals](./episode_015/find-the-capitals.js) - 7 kyu +* [range-extraction](./episode_015/range-extraction.js) - 4 kyu +* [the-hashtag-generator](./episode_015/the-hashtag-generator.js) - 5 kyu + +## [Episode 14](./episode_014) + +[Watch on YouTube](https://www.youtube.com/watch?v=dE5TV-TGfEo) + +* [duplicateEncode](./episode_014/duplicateEncode.js) - ??? kyu +* [memoizeFibonacci](./episode_014/memoizeFibonacci.js) - ??? kyu +* [snail](./episode_014/snail.js) - 4 kyu +* [twoToOne](./episode_014/twoToOne.js) - ??? kyu + +## [Episode 13](./episode_013) + +[Watch on YouTube](https://www.youtube.com/watch?v=_xud7qSXkOw) + +* [firstNonRepeatingCharacter](./episode_013/firstNonRepeatingCharacter.js) - ??? kyu +* [parity-outlier](./episode_013/parity-outlier.js) - ??? kyu +* [printer-errors](./episode_013/printer-errors.js) - 7 kyu +* [series-sum](./episode_013/series-sum.js) - ??? kyu + +## [Episode 12](./episode_012) + +[Watch on YouTube](https://www.youtube.com/watch?v=Ozp_PY1OOnw) + +* [format-string-names](./episode_012/format-string-names.js) - ??? kyu +* [pagination-helper](./episode_012/pagination-helper.js) - ??? kyu +* [sum-of-odd-numbers](./episode_012/sum-of-odd-numbers.js) - 7 kyu + +## [Episode 11](./episode_011) + +[Watch on YouTube](https://www.youtube.com/watch?v=bPTonTi42ic) + +* [counting-duplicates](./episode_011/counting-duplicates.js) - 6 kyu +* [square-digits](./episode_011/square-digits.js) - ??? kyu +* [weight-for-weight](./episode_011/weight-for-weight.js) - 5 kyu + +## [Episode 10](./episode_010) + +[Watch on YouTube](https://www.youtube.com/watch?v=6eoqEYc5SGI) + +* [find-divisors](./episode_010/find-divisors.js) - ??? kyu +* [pete-the-baker](./episode_010/pete-the-baker.js) - 5 kyu +* [spinning-words](./episode_010/spinning-words.js) - ??? kyu + +## [Episode 9](./episode_009) + +[Watch on YouTube](https://www.youtube.com/watch?v=0atKorB6tAI) + +* [character-recognition-mistakes](./episode_009/character-recognition-mistakes.js) - ??? kyu +* [narcissistic-numbers](./episode_009/narcissistic-numbers.js) - 7 kyu +* [nested-structure-compare](./episode_009/nested-structure-compare.js) - ??? kyu +* [regex-password](./episode_009/regex-password.js) - ??? kyu + +## [Episode 8](./episode_008) + +[Watch on YouTube](https://www.youtube.com/watch?v=M_K7azm9i6o) + +* [are-they-the-same](./episode_008/are-they-the-same.js) - 6 kyu +* [growth-population](./episode_008/growth-population.js) - ??? kyu +* [rot13](./episode_008/rot13.js) - 5 kyu +* [twice-linear](./episode_008/twice-linear.js) - 4 kyu +* [your-order-please](./episode_008/your-order-please.js) - 6 kyu + +## [Episode 7](./episode_007) + +[Watch on YouTube](https://www.youtube.com/watch?v=O5DmKHgFwjE) + +* [anagrams](./episode_007/anagrams.js) - null +* [camel-case](./episode_007/camel-case.js) - ??? kyu +* [categorize-new-member](./episode_007/categorize-new-member.js) - 7 kyu +* [isogram](./episode_007/isogram.js) - ??? kyu +* [multiples-of-3-and-5](./episode_007/multiples-of-3-and-5.js) - ??? kyu +* [priori-incantatem](./episode_007/priori-incantatem.js) - 4 kyu +* [rgb-to-hex](./episode_007/rgb-to-hex.js) - ??? kyu + +## [Episode 6](./episode_006) + +[Watch on YouTube](https://www.youtube.com/watch?v=mwoA9wjp7ec) + +* [calculating-with-functions](./episode_006/calculating-with-functions.js) - 5 kyu +* [digital-root](./episode_006/digital-root.js) - ??? kyu +* [dubstep](./episode_006/dubstep.js) - 6 kyu +* [odd-int](./episode_006/odd-int.js) - ??? kyu +* [reverse-polish-notation](./episode_006/reverse-polish-notation.js) - null +* [sum-of-numbers](./episode_006/sum-of-numbers.js) - null +* [zeros-to-end](./episode_006/zeros-to-end.js) - ??? kyu + +## [Episode 5](./episode_005) + +[Watch on YouTube](https://www.youtube.com/watch?v=S-h_tfwHQAQ) + +* [createPhoneNumber](./episode_005/createPhoneNumber.js) - ??? kyu +* [credit-card-mask](./episode_005/credit-card-mask.js) - 7 kyu +* [equal-sides-sum](./episode_005/equal-sides-sum.js) - ??? kyu +* [palindromeChainLength](./episode_005/palindromeChainLength.js) - ??? kyu +* [roman-numerals-encoder](./episode_005/roman-numerals-encoder.js) - 6 kyu +* [sum-of-two-lowest](./episode_005/sum-of-two-lowest.js) - ??? kyu + +## [Episode 4](./episode_004) + +[Watch on YouTube](https://www.youtube.com/watch?v=2ld5ndNkF2Q) + +* [count-the-smiley-faces](./episode_004/count-the-smiley-faces.js) - 6 kyu +* [human-readable-time](./episode_004/human-readable-time.js) - 5 kyu +* [list-filtering](./episode_004/list-filtering.js) - 7 kyu +* [maximum-subarray-sum](./episode_004/maximum-subarray-sum.js) - 5 kyu +* [scramblies](./episode_004/scramblies.js) - 5 kyu +* [sum-strings-as-numbers](./episode_004/sum-strings-as-numbers.js) - 4 kyu + +## [Episode 3](./episode_003) + +[Watch on YouTube](https://www.youtube.com/watch?v=Ms7L-aVN4Hc) + +* [dna-compliment](./episode_003/dna-compliment.js) - ??? kyu +* [iq-test](./episode_003/iq-test.js) - 6 kyu +* [pig-latin](./episode_003/pig-latin.js) - null +* [take-a-ten-minute-walk](./episode_003/take-a-ten-minute-walk.js) - 6 kyu +* [vowel-count](./episode_003/vowel-count.js) - 7 kyu + +## [Episode 2](./episode_002) + +[Watch on YouTube](https://www.youtube.com/watch?v=fH4w_xq2qao) + +* [exes-os](./episode_002/exes-os.js) - ??? kyu +* [fat-fingers](./episode_002/fat-fingers.js) - 6 kyu +* [jaden-case](./episode_002/jaden-case.js) - ??? kyu +* [sum-pairs](./episode_002/sum-pairs.js) - ??? kyu + +## [Episode 1](./episode_001) + +[Watch on YouTube](https://www.youtube.com/watch?v=Oq7r8metsD8) + +* [accum](./episode_001/accum.js) - ??? kyu +* [binary-addition](./episode_001/binary-addition.js) - 7 kyu +* [century-from-year](./episode_001/century-from-year.js) - 8 kyu +* [final-grade](./episode_001/final-grade.js) - ??? kyu +* [morse-code](./episode_001/morse-code.js) - ??? kyu diff --git a/episode_000/generateJSON.js b/episode_000/generateJSON.js new file mode 100644 index 0000000..7de9142 --- /dev/null +++ b/episode_000/generateJSON.js @@ -0,0 +1,57 @@ +const { promises: fs } = require('fs'); +const axios = require('axios'); +const { items: videos } = require('./videos.json'); + +(async () => { + const katas = []; + const files = await fs.readdir('../', 'utf8'); + files.reverse(); + for (const directory of files) { + if (directory.startsWith('episode') && directory !== 'episode_000') { + const episodeNum = +directory.replace('episode_', ''); + const solutions = await fs.readdir(`../${directory}`, 'utf8'); + + const { + snippet: { + resourceId: { + videoId + } + } + } = videos[episodeNum - 1]; + + const video = `https://www.youtube.com/watch?v=${videoId}`; + + for (const name of solutions) { + if (name.endsWith('.js')) { + const slug = name.replace('.js', ''); + const githubUrl = `https://github.com/CodingGarden/code-katas/blob/master/${directory}/${name}`; + try { + const { data: { name: kataName, rank: { id: kyu } } } = await axios.get(`https://www.codewars.com/api/v1/code-challenges/${slug}`); + console.log(slug, kyu); + katas.push({ + episodeNum, + video, + slug, + githubUrl, + kataName, + kyu + }); + } catch (error) { + katas.push({ + episodeNum, + video, + slug, + githubUrl, + kataName: slug, + kyu: null + }); + } + + } + } + } + } + + await fs.writeFile('katas.json', JSON.stringify(katas, 2), 'utf8'); +})(); + diff --git a/episode_000/generateReadme.js b/episode_000/generateReadme.js new file mode 100644 index 0000000..c36cf38 --- /dev/null +++ b/episode_000/generateReadme.js @@ -0,0 +1,47 @@ +const { promises: fs } = require('fs'); +const axios = require('axios'); +const { items: videos } = require('./videos.json'); + +(async () => { + let tableOfContents = ''; + const files = await fs.readdir('../', 'utf8'); + files.reverse(); + for (const directory of files) { + if (directory.startsWith('episode') && directory !== 'episode_000') { + const episodeNum = +directory.replace('episode_', ''); + const solutions = await fs.readdir(`../${directory}`, 'utf8'); + + const { + snippet: { + resourceId: { + videoId + } + } + } = videos[episodeNum - 1]; + + tableOfContents += ` +## [Episode ${episodeNum}](./${directory}) + +[Watch on YouTube](https://www.youtube.com/watch?v=${videoId}) + +` + for (const name of solutions) { + if (name.endsWith('.js')) { + const slug = name.replace('.js', ''); + const link = `[${slug}](./${directory}/${name})`; + try { + const { data: { rank: { name: kyu } } } = await axios.get(`https://www.codewars.com/api/v1/code-challenges/${slug}`); + console.log(slug, kyu); + tableOfContents += `* ${link} - ${kyu}\n` + } catch (error) { + tableOfContents += `* ${link} - ??? kyu\n` + } + + } + } + } + } + + await fs.writeFile('contents.md', tableOfContents, 'utf8'); +})(); + diff --git a/episode_000/katas.json b/episode_000/katas.json new file mode 100644 index 0000000..65607d7 --- /dev/null +++ b/episode_000/katas.json @@ -0,0 +1,715 @@ +[{ + "episodeNum": 23, + "video": "https://www.youtube.com/watch?v=c_EREn-eF5s", + "slug": "remove-the-minimum", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_023/remove-the-minimum.js", + "kataName": "Remove the minimum", + "kyu": -7 +}, { + "episodeNum": 23, + "video": "https://www.youtube.com/watch?v=c_EREn-eF5s", + "slug": "rot13", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_023/rot13.js", + "kataName": "ROT13", + "kyu": -5 +}, { + "episodeNum": 23, + "video": "https://www.youtube.com/watch?v=c_EREn-eF5s", + "slug": "strip-comments", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_023/strip-comments.js", + "kataName": "Strip Comments", + "kyu": -4 +}, { + "episodeNum": 23, + "video": "https://www.youtube.com/watch?v=c_EREn-eF5s", + "slug": "title-case", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_023/title-case.js", + "kataName": "Title Case", + "kyu": -6 +}, { + "episodeNum": 22, + "video": "https://www.youtube.com/watch?v=xgW-due5ukM", + "slug": "delete-occurrences-of-an-element-if-it-occurs-more-than-n-times", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_022/delete-occurrences-of-an-element-if-it-occurs-more-than-n-times.js", + "kataName": "Delete occurrences of an element if it occurs more than n times", + "kyu": -6 +}, { + "episodeNum": 22, + "video": "https://www.youtube.com/watch?v=xgW-due5ukM", + "slug": "regex-validate-pin-code", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_022/regex-validate-pin-code.js", + "kataName": "Regex validate PIN code", + "kyu": -7 +}, { + "episodeNum": 22, + "video": "https://www.youtube.com/watch?v=xgW-due5ukM", + "slug": "tic-tac-toe-checker", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_022/tic-tac-toe-checker.js", + "kataName": "Tic-Tac-Toe Checker", + "kyu": -5 +}, { + "episodeNum": 22, + "video": "https://www.youtube.com/watch?v=xgW-due5ukM", + "slug": "vector-class", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_022/vector-class.js", + "kataName": "Vector class", + "kyu": -5 +}, { + "episodeNum": 21, + "video": "https://www.youtube.com/watch?v=LiD9TT--F5Y", + "slug": "did-i-finish-my-sudoku", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_021/did-i-finish-my-sudoku.js", + "kataName": "Did I Finish my Sudoku?", + "kyu": -5 +}, { + "episodeNum": 21, + "video": "https://www.youtube.com/watch?v=LiD9TT--F5Y", + "slug": "distributing-candies", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_021/distributing-candies.js", + "kataName": "distributing-candies", + "kyu": null +}, { + "episodeNum": 21, + "video": "https://www.youtube.com/watch?v=LiD9TT--F5Y", + "slug": "vasya-clerk", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_021/vasya-clerk.js", + "kataName": "Vasya - Clerk", + "kyu": -6 +}, { + "episodeNum": 20, + "video": "https://www.youtube.com/watch?v=NGcsIUBKHiI", + "slug": "halloween-sweets", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_020/halloween-sweets.js", + "kataName": "Halloween Sweets", + "kyu": -5 +}, { + "episodeNum": 20, + "video": "https://www.youtube.com/watch?v=NGcsIUBKHiI", + "slug": "pirate-code", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_020/pirate-code.js", + "kataName": "Pirate Code", + "kyu": -7 +}, { + "episodeNum": 20, + "video": "https://www.youtube.com/watch?v=NGcsIUBKHiI", + "slug": "trick-or-treat", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_020/trick-or-treat.js", + "kataName": "trick-or-treat", + "kyu": null +}, { + "episodeNum": 19, + "video": "https://www.youtube.com/watch?v=EyyiM71-r18", + "slug": "bouncing-balls", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_019/bouncing-balls.js", + "kataName": "Bouncing Balls", + "kyu": -6 +}, { + "episodeNum": 19, + "video": "https://www.youtube.com/watch?v=EyyiM71-r18", + "slug": "most-consecutive-zeros", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_019/most-consecutive-zeros.js", + "kataName": "most-consecutive-zeros", + "kyu": null +}, { + "episodeNum": 19, + "video": "https://www.youtube.com/watch?v=EyyiM71-r18", + "slug": "number-combos", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_019/number-combos.js", + "kataName": "number-combos", + "kyu": null +}, { + "episodeNum": 19, + "video": "https://www.youtube.com/watch?v=EyyiM71-r18", + "slug": "pascalcase-into-snake-case", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_019/pascalcase-into-snake-case.js", + "kataName": "pascalcase-into-snake-case", + "kyu": null +}, { + "episodeNum": 19, + "video": "https://www.youtube.com/watch?v=EyyiM71-r18", + "slug": "sum-of-a-sequence", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_019/sum-of-a-sequence.js", + "kataName": "Sum of a sequence", + "kyu": -7 +}, { + "episodeNum": 18, + "video": "https://www.youtube.com/watch?v=qqznbb9xJa4", + "slug": "friend-or-foe", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_018/friend-or-foe.js", + "kataName": "Friend or Foe?", + "kyu": -7 +}, { + "episodeNum": 18, + "video": "https://www.youtube.com/watch?v=qqznbb9xJa4", + "slug": "greed-is-good", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_018/greed-is-good.js", + "kataName": "Greed is Good", + "kyu": -5 +}, { + "episodeNum": 18, + "video": "https://www.youtube.com/watch?v=qqznbb9xJa4", + "slug": "math-issues", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_018/math-issues.js", + "kataName": "Math Issues", + "kyu": -5 +}, { + "episodeNum": 18, + "video": "https://www.youtube.com/watch?v=qqznbb9xJa4", + "slug": "scratch", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_018/scratch.js", + "kataName": "scratch", + "kyu": null +}, { + "episodeNum": 18, + "video": "https://www.youtube.com/watch?v=qqznbb9xJa4", + "slug": "which-are-in", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_018/which-are-in.js", + "kataName": "Which are in?", + "kyu": -6 +}, { + "episodeNum": 17, + "video": "https://www.youtube.com/watch?v=jFJGnX-q0Tc", + "slug": "double-cola", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_017/double-cola.js", + "kataName": "Double Cola", + "kyu": -5 +}, { + "episodeNum": 17, + "video": "https://www.youtube.com/watch?v=jFJGnX-q0Tc", + "slug": "exponential-comparison", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_017/exponential-comparison.js", + "kataName": "Exponential Comparison", + "kyu": -6 +}, { + "episodeNum": 17, + "video": "https://www.youtube.com/watch?v=jFJGnX-q0Tc", + "slug": "ones-and-zeros", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_017/ones-and-zeros.js", + "kataName": "Ones and Zeros", + "kyu": -7 +}, { + "episodeNum": 17, + "video": "https://www.youtube.com/watch?v=jFJGnX-q0Tc", + "slug": "square-every-digit", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_017/square-every-digit.js", + "kataName": "Square Every Digit", + "kyu": -7 +}, { + "episodeNum": 16, + "video": "https://www.youtube.com/watch?v=BKBZLZ50xh8", + "slug": "message-from-alca", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_016/message-from-alca.js", + "kataName": "message-from-alca", + "kyu": null +}, { + "episodeNum": 16, + "video": "https://www.youtube.com/watch?v=BKBZLZ50xh8", + "slug": "replace-with-alphabet-position", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_016/replace-with-alphabet-position.js", + "kataName": "Replace With Alphabet Position", + "kyu": -6 +}, { + "episodeNum": 16, + "video": "https://www.youtube.com/watch?v=BKBZLZ50xh8", + "slug": "valid-parentheses", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_016/valid-parentheses.js", + "kataName": "Valid Parentheses", + "kyu": -5 +}, { + "episodeNum": 16, + "video": "https://www.youtube.com/watch?v=BKBZLZ50xh8", + "slug": "youre-a-square", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_016/youre-a-square.js", + "kataName": "You're a square!", + "kyu": -7 +}, { + "episodeNum": 15, + "video": "https://www.youtube.com/watch?v=R49EFycGF3s", + "slug": "dont-rely-on-luck", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_015/dont-rely-on-luck.js", + "kataName": "Don't rely on luck.", + "kyu": -6 +}, { + "episodeNum": 15, + "video": "https://www.youtube.com/watch?v=R49EFycGF3s", + "slug": "find-the-capitals", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_015/find-the-capitals.js", + "kataName": "Find the Capitals", + "kyu": -7 +}, { + "episodeNum": 15, + "video": "https://www.youtube.com/watch?v=R49EFycGF3s", + "slug": "range-extraction", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_015/range-extraction.js", + "kataName": "Range Extraction", + "kyu": -4 +}, { + "episodeNum": 15, + "video": "https://www.youtube.com/watch?v=R49EFycGF3s", + "slug": "the-hashtag-generator", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_015/the-hashtag-generator.js", + "kataName": "The Hashtag Generator", + "kyu": -5 +}, { + "episodeNum": 14, + "video": "https://www.youtube.com/watch?v=dE5TV-TGfEo", + "slug": "duplicateEncode", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_014/duplicateEncode.js", + "kataName": "duplicateEncode", + "kyu": null +}, { + "episodeNum": 14, + "video": "https://www.youtube.com/watch?v=dE5TV-TGfEo", + "slug": "memoizeFibonacci", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_014/memoizeFibonacci.js", + "kataName": "memoizeFibonacci", + "kyu": null +}, { + "episodeNum": 14, + "video": "https://www.youtube.com/watch?v=dE5TV-TGfEo", + "slug": "snail", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_014/snail.js", + "kataName": "Snail", + "kyu": -4 +}, { + "episodeNum": 14, + "video": "https://www.youtube.com/watch?v=dE5TV-TGfEo", + "slug": "twoToOne", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_014/twoToOne.js", + "kataName": "twoToOne", + "kyu": null +}, { + "episodeNum": 13, + "video": "https://www.youtube.com/watch?v=_xud7qSXkOw", + "slug": "firstNonRepeatingCharacter", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_013/firstNonRepeatingCharacter.js", + "kataName": "firstNonRepeatingCharacter", + "kyu": null +}, { + "episodeNum": 13, + "video": "https://www.youtube.com/watch?v=_xud7qSXkOw", + "slug": "parity-outlier", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_013/parity-outlier.js", + "kataName": "parity-outlier", + "kyu": null +}, { + "episodeNum": 13, + "video": "https://www.youtube.com/watch?v=_xud7qSXkOw", + "slug": "printer-errors", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_013/printer-errors.js", + "kataName": "Printer Errors", + "kyu": -7 +}, { + "episodeNum": 13, + "video": "https://www.youtube.com/watch?v=_xud7qSXkOw", + "slug": "series-sum", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_013/series-sum.js", + "kataName": "series-sum", + "kyu": null +}, { + "episodeNum": 12, + "video": "https://www.youtube.com/watch?v=Ozp_PY1OOnw", + "slug": "format-string-names", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_012/format-string-names.js", + "kataName": "format-string-names", + "kyu": null +}, { + "episodeNum": 12, + "video": "https://www.youtube.com/watch?v=Ozp_PY1OOnw", + "slug": "pagination-helper", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_012/pagination-helper.js", + "kataName": "pagination-helper", + "kyu": null +}, { + "episodeNum": 12, + "video": "https://www.youtube.com/watch?v=Ozp_PY1OOnw", + "slug": "sum-of-odd-numbers", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_012/sum-of-odd-numbers.js", + "kataName": "Sum of odd numbers", + "kyu": -7 +}, { + "episodeNum": 11, + "video": "https://www.youtube.com/watch?v=bPTonTi42ic", + "slug": "counting-duplicates", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_011/counting-duplicates.js", + "kataName": "Counting Duplicates", + "kyu": -6 +}, { + "episodeNum": 11, + "video": "https://www.youtube.com/watch?v=bPTonTi42ic", + "slug": "square-digits", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_011/square-digits.js", + "kataName": "square-digits", + "kyu": null +}, { + "episodeNum": 11, + "video": "https://www.youtube.com/watch?v=bPTonTi42ic", + "slug": "weight-for-weight", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_011/weight-for-weight.js", + "kataName": "Weight for weight", + "kyu": -5 +}, { + "episodeNum": 10, + "video": "https://www.youtube.com/watch?v=6eoqEYc5SGI", + "slug": "find-divisors", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_010/find-divisors.js", + "kataName": "find-divisors", + "kyu": null +}, { + "episodeNum": 10, + "video": "https://www.youtube.com/watch?v=6eoqEYc5SGI", + "slug": "pete-the-baker", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_010/pete-the-baker.js", + "kataName": "Pete, the baker", + "kyu": -5 +}, { + "episodeNum": 10, + "video": "https://www.youtube.com/watch?v=6eoqEYc5SGI", + "slug": "spinning-words", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_010/spinning-words.js", + "kataName": "spinning-words", + "kyu": null +}, { + "episodeNum": 9, + "video": "https://www.youtube.com/watch?v=0atKorB6tAI", + "slug": "character-recognition-mistakes", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_009/character-recognition-mistakes.js", + "kataName": "character-recognition-mistakes", + "kyu": null +}, { + "episodeNum": 9, + "video": "https://www.youtube.com/watch?v=0atKorB6tAI", + "slug": "narcissistic-numbers", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_009/narcissistic-numbers.js", + "kataName": "Narcissistic Numbers ", + "kyu": -7 +}, { + "episodeNum": 9, + "video": "https://www.youtube.com/watch?v=0atKorB6tAI", + "slug": "nested-structure-compare", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_009/nested-structure-compare.js", + "kataName": "nested-structure-compare", + "kyu": null +}, { + "episodeNum": 9, + "video": "https://www.youtube.com/watch?v=0atKorB6tAI", + "slug": "regex-password", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_009/regex-password.js", + "kataName": "regex-password", + "kyu": null +}, { + "episodeNum": 8, + "video": "https://www.youtube.com/watch?v=M_K7azm9i6o", + "slug": "are-they-the-same", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_008/are-they-the-same.js", + "kataName": "Are they the \"same\"?", + "kyu": -6 +}, { + "episodeNum": 8, + "video": "https://www.youtube.com/watch?v=M_K7azm9i6o", + "slug": "growth-population", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_008/growth-population.js", + "kataName": "growth-population", + "kyu": null +}, { + "episodeNum": 8, + "video": "https://www.youtube.com/watch?v=M_K7azm9i6o", + "slug": "rot13", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_008/rot13.js", + "kataName": "ROT13", + "kyu": -5 +}, { + "episodeNum": 8, + "video": "https://www.youtube.com/watch?v=M_K7azm9i6o", + "slug": "twice-linear", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_008/twice-linear.js", + "kataName": "Twice linear", + "kyu": -4 +}, { + "episodeNum": 8, + "video": "https://www.youtube.com/watch?v=M_K7azm9i6o", + "slug": "your-order-please", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_008/your-order-please.js", + "kataName": "Your order, please", + "kyu": -6 +}, { + "episodeNum": 7, + "video": "https://www.youtube.com/watch?v=O5DmKHgFwjE", + "slug": "anagrams", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_007/anagrams.js", + "kataName": "Anagrams", + "kyu": null +}, { + "episodeNum": 7, + "video": "https://www.youtube.com/watch?v=O5DmKHgFwjE", + "slug": "camel-case", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_007/camel-case.js", + "kataName": "camel-case", + "kyu": null +}, { + "episodeNum": 7, + "video": "https://www.youtube.com/watch?v=O5DmKHgFwjE", + "slug": "categorize-new-member", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_007/categorize-new-member.js", + "kataName": "Categorize New Member", + "kyu": -7 +}, { + "episodeNum": 7, + "video": "https://www.youtube.com/watch?v=O5DmKHgFwjE", + "slug": "isogram", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_007/isogram.js", + "kataName": "isogram", + "kyu": null +}, { + "episodeNum": 7, + "video": "https://www.youtube.com/watch?v=O5DmKHgFwjE", + "slug": "multiples-of-3-and-5", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_007/multiples-of-3-and-5.js", + "kataName": "multiples-of-3-and-5", + "kyu": null +}, { + "episodeNum": 7, + "video": "https://www.youtube.com/watch?v=O5DmKHgFwjE", + "slug": "priori-incantatem", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_007/priori-incantatem.js", + "kataName": "Priori Incantatem", + "kyu": -4 +}, { + "episodeNum": 7, + "video": "https://www.youtube.com/watch?v=O5DmKHgFwjE", + "slug": "rgb-to-hex", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_007/rgb-to-hex.js", + "kataName": "rgb-to-hex", + "kyu": null +}, { + "episodeNum": 6, + "video": "https://www.youtube.com/watch?v=mwoA9wjp7ec", + "slug": "calculating-with-functions", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_006/calculating-with-functions.js", + "kataName": "Calculating with Functions", + "kyu": -5 +}, { + "episodeNum": 6, + "video": "https://www.youtube.com/watch?v=mwoA9wjp7ec", + "slug": "digital-root", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_006/digital-root.js", + "kataName": "digital-root", + "kyu": null +}, { + "episodeNum": 6, + "video": "https://www.youtube.com/watch?v=mwoA9wjp7ec", + "slug": "dubstep", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_006/dubstep.js", + "kataName": "Dubstep", + "kyu": -6 +}, { + "episodeNum": 6, + "video": "https://www.youtube.com/watch?v=mwoA9wjp7ec", + "slug": "odd-int", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_006/odd-int.js", + "kataName": "odd-int", + "kyu": null +}, { + "episodeNum": 6, + "video": "https://www.youtube.com/watch?v=mwoA9wjp7ec", + "slug": "reverse-polish-notation", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_006/reverse-polish-notation.js", + "kataName": "Reverse Polish Notation", + "kyu": null +}, { + "episodeNum": 6, + "video": "https://www.youtube.com/watch?v=mwoA9wjp7ec", + "slug": "sum-of-numbers", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_006/sum-of-numbers.js", + "kataName": "Sum of numbers", + "kyu": null +}, { + "episodeNum": 6, + "video": "https://www.youtube.com/watch?v=mwoA9wjp7ec", + "slug": "zeros-to-end", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_006/zeros-to-end.js", + "kataName": "zeros-to-end", + "kyu": null +}, { + "episodeNum": 5, + "video": "https://www.youtube.com/watch?v=S-h_tfwHQAQ", + "slug": "createPhoneNumber", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_005/createPhoneNumber.js", + "kataName": "createPhoneNumber", + "kyu": null +}, { + "episodeNum": 5, + "video": "https://www.youtube.com/watch?v=S-h_tfwHQAQ", + "slug": "credit-card-mask", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_005/credit-card-mask.js", + "kataName": "Credit Card Mask", + "kyu": -7 +}, { + "episodeNum": 5, + "video": "https://www.youtube.com/watch?v=S-h_tfwHQAQ", + "slug": "equal-sides-sum", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_005/equal-sides-sum.js", + "kataName": "equal-sides-sum", + "kyu": null +}, { + "episodeNum": 5, + "video": "https://www.youtube.com/watch?v=S-h_tfwHQAQ", + "slug": "palindromeChainLength", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_005/palindromeChainLength.js", + "kataName": "palindromeChainLength", + "kyu": null +}, { + "episodeNum": 5, + "video": "https://www.youtube.com/watch?v=S-h_tfwHQAQ", + "slug": "roman-numerals-encoder", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_005/roman-numerals-encoder.js", + "kataName": "Roman Numerals Encoder", + "kyu": -6 +}, { + "episodeNum": 5, + "video": "https://www.youtube.com/watch?v=S-h_tfwHQAQ", + "slug": "sum-of-two-lowest", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_005/sum-of-two-lowest.js", + "kataName": "sum-of-two-lowest", + "kyu": null +}, { + "episodeNum": 4, + "video": "https://www.youtube.com/watch?v=2ld5ndNkF2Q", + "slug": "count-the-smiley-faces", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_004/count-the-smiley-faces.js", + "kataName": "Count the smiley faces!", + "kyu": -6 +}, { + "episodeNum": 4, + "video": "https://www.youtube.com/watch?v=2ld5ndNkF2Q", + "slug": "human-readable-time", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_004/human-readable-time.js", + "kataName": "Human Readable Time", + "kyu": -5 +}, { + "episodeNum": 4, + "video": "https://www.youtube.com/watch?v=2ld5ndNkF2Q", + "slug": "list-filtering", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_004/list-filtering.js", + "kataName": "List Filtering", + "kyu": -7 +}, { + "episodeNum": 4, + "video": "https://www.youtube.com/watch?v=2ld5ndNkF2Q", + "slug": "maximum-subarray-sum", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_004/maximum-subarray-sum.js", + "kataName": "Maximum subarray sum", + "kyu": -5 +}, { + "episodeNum": 4, + "video": "https://www.youtube.com/watch?v=2ld5ndNkF2Q", + "slug": "scramblies", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_004/scramblies.js", + "kataName": "Scramblies", + "kyu": -5 +}, { + "episodeNum": 4, + "video": "https://www.youtube.com/watch?v=2ld5ndNkF2Q", + "slug": "sum-strings-as-numbers", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_004/sum-strings-as-numbers.js", + "kataName": "Sum Strings as Numbers", + "kyu": -4 +}, { + "episodeNum": 3, + "video": "https://www.youtube.com/watch?v=Ms7L-aVN4Hc", + "slug": "dna-compliment", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_003/dna-compliment.js", + "kataName": "dna-compliment", + "kyu": null +}, { + "episodeNum": 3, + "video": "https://www.youtube.com/watch?v=Ms7L-aVN4Hc", + "slug": "iq-test", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_003/iq-test.js", + "kataName": "IQ Test", + "kyu": -6 +}, { + "episodeNum": 3, + "video": "https://www.youtube.com/watch?v=Ms7L-aVN4Hc", + "slug": "pig-latin", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_003/pig-latin.js", + "kataName": "Pig Latin", + "kyu": null +}, { + "episodeNum": 3, + "video": "https://www.youtube.com/watch?v=Ms7L-aVN4Hc", + "slug": "take-a-ten-minute-walk", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_003/take-a-ten-minute-walk.js", + "kataName": "Take a Ten Minute Walk", + "kyu": -6 +}, { + "episodeNum": 3, + "video": "https://www.youtube.com/watch?v=Ms7L-aVN4Hc", + "slug": "vowel-count", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_003/vowel-count.js", + "kataName": "Vowel Count", + "kyu": -7 +}, { + "episodeNum": 2, + "video": "https://www.youtube.com/watch?v=fH4w_xq2qao", + "slug": "exes-os", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_002/exes-os.js", + "kataName": "exes-os", + "kyu": null +}, { + "episodeNum": 2, + "video": "https://www.youtube.com/watch?v=fH4w_xq2qao", + "slug": "fat-fingers", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_002/fat-fingers.js", + "kataName": "Fat Fingers", + "kyu": -6 +}, { + "episodeNum": 2, + "video": "https://www.youtube.com/watch?v=fH4w_xq2qao", + "slug": "jaden-case", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_002/jaden-case.js", + "kataName": "jaden-case", + "kyu": null +}, { + "episodeNum": 2, + "video": "https://www.youtube.com/watch?v=fH4w_xq2qao", + "slug": "sum-pairs", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_002/sum-pairs.js", + "kataName": "sum-pairs", + "kyu": null +}, { + "episodeNum": 1, + "video": "https://www.youtube.com/watch?v=Oq7r8metsD8", + "slug": "accum", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_001/accum.js", + "kataName": "accum", + "kyu": null +}, { + "episodeNum": 1, + "video": "https://www.youtube.com/watch?v=Oq7r8metsD8", + "slug": "binary-addition", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_001/binary-addition.js", + "kataName": "Binary Addition", + "kyu": -7 +}, { + "episodeNum": 1, + "video": "https://www.youtube.com/watch?v=Oq7r8metsD8", + "slug": "century-from-year", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_001/century-from-year.js", + "kataName": "Century From Year", + "kyu": -8 +}, { + "episodeNum": 1, + "video": "https://www.youtube.com/watch?v=Oq7r8metsD8", + "slug": "final-grade", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_001/final-grade.js", + "kataName": "final-grade", + "kyu": null +}, { + "episodeNum": 1, + "video": "https://www.youtube.com/watch?v=Oq7r8metsD8", + "slug": "morse-code", + "githubUrl": "https://github.com/CodingGarden/code-katas/blob/master/episode_001/morse-code.js", + "kataName": "morse-code", + "kyu": null +}] \ No newline at end of file diff --git a/episode_000/package-lock.json b/episode_000/package-lock.json new file mode 100644 index 0000000..ec3ddcb --- /dev/null +++ b/episode_000/package-lock.json @@ -0,0 +1,43 @@ +{ + "name": "episode_000", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "axios": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", + "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", + "requires": { + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", + "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } +} diff --git a/episode_000/package.json b/episode_000/package.json new file mode 100644 index 0000000..e59d4d2 --- /dev/null +++ b/episode_000/package.json @@ -0,0 +1,15 @@ +{ + "name": "episode_000", + "version": "1.0.0", + "description": "![](https://i.imgur.com/nm3ulgm.jpg)", + "main": "generateReadme.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "CJ R. (https://w3cj.now.sh)", + "license": "MIT", + "dependencies": { + "axios": "^0.18.0" + } +} diff --git a/episode_000/videos.json b/episode_000/videos.json new file mode 100644 index 0000000..9d8139a --- /dev/null +++ b/episode_000/videos.json @@ -0,0 +1,960 @@ +{ + "kind": "youtube#playlistItemListResponse", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/KuuV4X3TaSOzdV6PUY_UlcJuua4\"", + "pageInfo": { + "totalResults": 24, + "resultsPerPage": 50 + }, + "items": [ + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/N3OYxees-bEPxiKyY3pqtDqOmlw\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS41NkI0NEY2RDEwNTU3Q0M2", + "snippet": { + "publishedAt": "2018-04-21T22:48:56.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #1 - accum, binary-addition, century-from-year, final-grade, morse-code", + "description": "Show starts at 0:35\nThe solutions to the katas I solved are here: https://github.com/CodingGarden/code-katas/tree/master/04-18-2018\nSuggest katas for next time here: https://github.com/CodingGarden/code-katas/issues/1", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/Oq7r8metsD8/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/Oq7r8metsD8/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/Oq7r8metsD8/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/Oq7r8metsD8/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/Oq7r8metsD8/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 0, + "resourceId": { + "kind": "youtube#video", + "videoId": "Oq7r8metsD8" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/hz-tcABz8YnOnKw_paMrOSgdg8U\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4yODlGNEE0NkRGMEEzMEQy", + "snippet": { + "publishedAt": "2018-04-26T04:01:34.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #2 - exes-os, fat-fingers, jaden-case, sum-pairs", + "description": "Show starts at 1:38\nCode from the stream is here: https://github.com/CodingGarden/code-katas/tree/master/04-25-2018\nSuggest Katas for me to solve here: https://github.com/CodingGarden/code-katas/issues/1", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/fH4w_xq2qao/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/fH4w_xq2qao/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/fH4w_xq2qao/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/fH4w_xq2qao/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/fH4w_xq2qao/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 1, + "resourceId": { + "kind": "youtube#video", + "videoId": "fH4w_xq2qao" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/uVZGlS4iMi2liGptssGmL0nNwxg\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4wMTcyMDhGQUE4NTIzM0Y5", + "snippet": { + "publishedAt": "2018-05-03T03:54:57.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #3 - dna-compliment, iq-test, pig-latin, ten-minute-walk, vowel-count", + "description": "Show starts at 2:32\nSolutions are here: https://github.com/CodingGarden/code-katas/tree/master/05-02-2018", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/Ms7L-aVN4Hc/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/Ms7L-aVN4Hc/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/Ms7L-aVN4Hc/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/Ms7L-aVN4Hc/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 2, + "resourceId": { + "kind": "youtube#video", + "videoId": "Ms7L-aVN4Hc" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/mqWCd-n1vX-jHbdaRiPwCL_lxiA\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS41MjE1MkI0OTQ2QzJGNzNG", + "snippet": { + "publishedAt": "2018-05-10T04:36:15.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #4 - smiley-faces, scramblies, human-readable-time, subarray-sum, sum-strings-as-numbers", + "description": "Show starts at 2:38\nSolutions are here: https://github.com/CodingGarden/code-katas/tree/master/05-09-2018", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/2ld5ndNkF2Q/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/2ld5ndNkF2Q/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/2ld5ndNkF2Q/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/2ld5ndNkF2Q/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 3, + "resourceId": { + "kind": "youtube#video", + "videoId": "2ld5ndNkF2Q" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/Kg2iGv2calMeDuMbW2y2HOVVCaA\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4wOTA3OTZBNzVEMTUzOTMy", + "snippet": { + "publishedAt": "2018-05-17T05:02:03.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #5 - Solving Code Wars Katas and Talking Through My Process", + "description": "Show starts at 2:34\nSolutions for this episode are here - https://github.com/CodingGarden/code-katas/tree/master/05-16-2018", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/S-h_tfwHQAQ/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/S-h_tfwHQAQ/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/S-h_tfwHQAQ/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/S-h_tfwHQAQ/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 4, + "resourceId": { + "kind": "youtube#video", + "videoId": "S-h_tfwHQAQ" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/pEC6T3mtDhY8KH4IY49WWUcg10w\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4xMkVGQjNCMUM1N0RFNEUx", + "snippet": { + "publishedAt": "2018-05-24T04:19:19.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #6 - Watch me solve code katas live and talk through my process", + "description": "Show starts at 2:43\nSolutions are here: https://github.com/CodingGarden/code-katas/tree/master/05-23-2018\n\nhttps://www.codewars.com/kata/beginner-series-number-3-sum-of-numbers/train/javascript\nhttps://www.codewars.com/kata/find-the-odd-int/train/javascript\nhttps://www.codewars.com/kata/sum-of-digits-slash-digital-root/train/javascript\nhttps://www.codewars.com/kata/dubstep/train/javascript\nhttps://www.codewars.com/kata/moving-zeros-to-the-end/train/javascript\nhttps://www.codewars.com/kata/calculating-with-functions/train/javascript\nhttps://www.codewars.com/kata/reverse-polish-notation-calculator/train/javascript", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/mwoA9wjp7ec/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/mwoA9wjp7ec/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/mwoA9wjp7ec/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/mwoA9wjp7ec/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 5, + "resourceId": { + "kind": "youtube#video", + "videoId": "mwoA9wjp7ec" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/0mtLAl2QMhs-Ye_t4VDhBIicGa8\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS41MzJCQjBCNDIyRkJDN0VD", + "snippet": { + "publishedAt": "2018-05-31T04:56:51.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #7 - Solving Code Wars Katas Live and Talking Through My Process", + "description": "Show starts at 2:35\nLinks for tonights katas are here: https://git.io/katas-7", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/O5DmKHgFwjE/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/O5DmKHgFwjE/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/O5DmKHgFwjE/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/O5DmKHgFwjE/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 6, + "resourceId": { + "kind": "youtube#video", + "videoId": "O5DmKHgFwjE" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/DKxXdoF2utPNHz_ehQLL9rMM0sI\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS5DQUNERDQ2NkIzRUQxNTY1", + "snippet": { + "publishedAt": "2018-06-07T04:26:26.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #8 - Solving code wars katas live and talking through my process", + "description": "Show starts at 2:20\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nJoin the discord: https://coding.garden/discord\nKatas for tonight are here: https://github.com/CodingGarden/code-katas/tree/master/06-06-2018", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/M_K7azm9i6o/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/M_K7azm9i6o/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/M_K7azm9i6o/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/M_K7azm9i6o/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 7, + "resourceId": { + "kind": "youtube#video", + "videoId": "M_K7azm9i6o" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/G9Z2pcbYsjZi55HDFKABsKrWNcg\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS45NDk1REZENzhEMzU5MDQz", + "snippet": { + "publishedAt": "2018-06-14T17:46:14.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #9 - Solving Code Wars Katas and Talking through my process", + "description": "", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/0atKorB6tAI/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/0atKorB6tAI/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/0atKorB6tAI/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/0atKorB6tAI/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 8, + "resourceId": { + "kind": "youtube#video", + "videoId": "0atKorB6tAI" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/62ZhAvhlfAlN10bCUsYj6ZbHEvo\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS40NzZCMERDMjVEN0RFRThB", + "snippet": { + "publishedAt": "2018-07-08T00:29:46.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #10 - Solving Code Wars Katas and Talking Through My Process", + "description": "", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/6eoqEYc5SGI/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/6eoqEYc5SGI/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/6eoqEYc5SGI/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/6eoqEYc5SGI/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 9, + "resourceId": { + "kind": "youtube#video", + "videoId": "6eoqEYc5SGI" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/TNyI5oDl8MOV9r0ZVaO_hkigSZo\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS5GNjNDRDREMDQxOThCMDQ2", + "snippet": { + "publishedAt": "2018-07-08T00:29:22.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #11 - Solving Code Wars Katas and Talking through my process", + "description": "Show starts at 1:58\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/bPTonTi42ic/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/bPTonTi42ic/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/bPTonTi42ic/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/bPTonTi42ic/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 10, + "resourceId": { + "kind": "youtube#video", + "videoId": "bPTonTi42ic" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/QD8jf8e3l7YWNXzHWb606S4m70A\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS5EMEEwRUY5M0RDRTU3NDJC", + "snippet": { + "publishedAt": "2018-07-14T12:08:10.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #12 - Solving Code Wars Code Katas and Talking Through My Process", + "description": "", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/Ozp_PY1OOnw/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/Ozp_PY1OOnw/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/Ozp_PY1OOnw/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/Ozp_PY1OOnw/sddefault.jpg", + "width": 640, + "height": 480 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 11, + "resourceId": { + "kind": "youtube#video", + "videoId": "Ozp_PY1OOnw" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/gimhzCrE15ATFqyyfctDUlxWFzg\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS45ODRDNTg0QjA4NkFBNkQy", + "snippet": { + "publishedAt": "2018-08-29T23:32:51.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #13 - Solving Code Wars Katas and Talking Through My Process", + "description": "Code is here: https://github.com/CodingGarden/code-katas/tree/master/08-01-2018\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/_xud7qSXkOw/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/_xud7qSXkOw/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/_xud7qSXkOw/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 12, + "resourceId": { + "kind": "youtube#video", + "videoId": "_xud7qSXkOw" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/q_JelwWveks2onZLP-lczDc0XCs\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4zMDg5MkQ5MEVDMEM1NTg2", + "snippet": { + "publishedAt": "2018-08-29T23:33:00.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #14 - Solving Code Wars Code Katas and talking through my process", + "description": "Donate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/dE5TV-TGfEo/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/dE5TV-TGfEo/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/dE5TV-TGfEo/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/dE5TV-TGfEo/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/dE5TV-TGfEo/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 13, + "resourceId": { + "kind": "youtube#video", + "videoId": "dE5TV-TGfEo" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/ZgfJGGPQj_JE-bnbV3zty-QgZ1Q\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS41Mzk2QTAxMTkzNDk4MDhF", + "snippet": { + "publishedAt": "2018-08-29T23:33:48.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #15 - Solving Code Wars Code Katas and talking through my process", + "description": "Donate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/R49EFycGF3s/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/R49EFycGF3s/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/R49EFycGF3s/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 14, + "resourceId": { + "kind": "youtube#video", + "videoId": "R49EFycGF3s" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/8W7_GDmjT-toRSSC6Kjg-o8SLDI\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS41QTY1Q0UxMTVCODczNThE", + "snippet": { + "publishedAt": "2018-09-19T16:47:11.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #16 - Solving Code Wars Code Katas and talking through my process", + "description": "Donate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/BKBZLZ50xh8/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/BKBZLZ50xh8/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/BKBZLZ50xh8/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 15, + "resourceId": { + "kind": "youtube#video", + "videoId": "BKBZLZ50xh8" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/EdHqKfXnbPJrn2v4Zv1_3hHN3O0\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS5EQUE1NTFDRjcwMDg0NEMz", + "snippet": { + "publishedAt": "2018-09-19T16:46:43.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #17: Solving Code Wars Katas and Talking Through My Process", + "description": "Katas are here: https://github.com/CodingGarden/code-katas/tree/master/09-19-2018\n\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/jFJGnX-q0Tc/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/jFJGnX-q0Tc/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/jFJGnX-q0Tc/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/jFJGnX-q0Tc/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/jFJGnX-q0Tc/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 16, + "resourceId": { + "kind": "youtube#video", + "videoId": "jFJGnX-q0Tc" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/z_cg9O1iMtOlHxrJjmSnoHjfZqw\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4yMUQyQTQzMjRDNzMyQTMy", + "snippet": { + "publishedAt": "2018-10-02T02:34:50.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #18 - Solving Code Wars Katas and Talking Through My Process", + "description": "Donate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/qqznbb9xJa4/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/qqznbb9xJa4/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/qqznbb9xJa4/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/qqznbb9xJa4/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/qqznbb9xJa4/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 17, + "resourceId": { + "kind": "youtube#video", + "videoId": "qqznbb9xJa4" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/mrJEklZODwolYaWeePFPLBzDCfI\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS45RTgxNDRBMzUwRjQ0MDhC", + "snippet": { + "publishedAt": "2018-10-04T05:35:08.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #19 - Solving Code Wars Katas and Talking Through My Process", + "description": "Katas are here: https://github.com/CodingGarden/code-katas/tree/master/10-03-2018\n\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/EyyiM71-r18/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/EyyiM71-r18/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/EyyiM71-r18/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 18, + "resourceId": { + "kind": "youtube#video", + "videoId": "EyyiM71-r18" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/BsY999j4UrLw_BfEtDg31NktRkY\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS5ENDU4Q0M4RDExNzM1Mjcy", + "snippet": { + "publishedAt": "2019-02-02T03:31:06.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #20 - Halloween Edition!", + "description": "Katas are here: https://github.com/CodingGarden/code-katas\n\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/NGcsIUBKHiI/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/NGcsIUBKHiI/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/NGcsIUBKHiI/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 19, + "resourceId": { + "kind": "youtube#video", + "videoId": "NGcsIUBKHiI" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/IYMNLVT1ZdvuVNnOu4lVTZ6HSv8\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4yMDhBMkNBNjRDMjQxQTg1", + "snippet": { + "publishedAt": "2019-02-02T03:31:15.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #21 - Solving Code Wars Katas and Talking Through My Process", + "description": "Katas are here: https://github.com/CodingGarden/code-katas/tree/master/11-14-2018\n\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/LiD9TT--F5Y/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/LiD9TT--F5Y/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/LiD9TT--F5Y/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 20, + "resourceId": { + "kind": "youtube#video", + "videoId": "LiD9TT--F5Y" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/JJPZauD0eUM_E0czWOdrNKwsZ0I\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS5GM0Q3M0MzMzY5NTJFNTdE", + "snippet": { + "publishedAt": "2019-02-02T03:31:26.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #22 - Solving Code Wars Katas and Talking Through My Process", + "description": "Katas are here: https://github.com/CodingGarden/code-katas/tree/master/12-12-2018\n\nDonate: https://coding.garden/donate\nPledge: https://coding.garden/pledge\nDiscord: https://coding.garden/discord\nStickers: https://coding.garden/stickers\nGear List: https://coding.garden/gear", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/xgW-due5ukM/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/xgW-due5ukM/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/xgW-due5ukM/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 21, + "resourceId": { + "kind": "youtube#video", + "videoId": "xgW-due5ukM" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/FeQY0_oif4LCw2LE2qcIhx3aE2c\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS4zRjM0MkVCRTg0MkYyQTM0", + "snippet": { + "publishedAt": "2019-02-02T03:31:35.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas #23 - Solving Code Wars Katas and Talking Through My Process", + "description": "šŸŽŽ Katas are here: https://github.com/CodingGarden/code-katas/tree/master/01-16-2019\n\nšŸ’– Donate: https://coding.garden/donate\nšŸ˜ Pledge: https://coding.garden/pledge\nšŸ’¬ Discord: https://coding.garden/discord\nšŸŽ‰ Stickers: https://coding.garden/stickers\nšŸ’» Gear List: https://coding.garden/gear", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/c_EREn-eF5s/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/c_EREn-eF5s/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/c_EREn-eF5s/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 22, + "resourceId": { + "kind": "youtube#video", + "videoId": "c_EREn-eF5s" + } + } + }, + { + "kind": "youtube#playlistItem", + "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/igDbiZW6UpEHGlPU4fA29U9qNfI\"", + "id": "UExNX2kwb2JjY3kzc1pHelpkcEV0eFBjUjFpUElWMHRhUS45NzUwQkI1M0UxNThBMkU0", + "snippet": { + "publishedAt": "2019-02-07T03:08:14.000Z", + "channelId": "UCLNgu_OupwoeESgtab33CCw", + "title": "Code Katas Chill Stream - Renaming and organizing katas on github", + "description": "https://github.com/CodingGarden/code-katas\n\nšŸ’– Donate: https://coding.garden/donate\nšŸ˜ Pledge: https://coding.garden/pledge\nšŸ’¬ Discord: https://coding.garden/discord\nšŸŽ‰ Stickers: https://coding.garden/stickers\nšŸ’» Gear List: https://coding.garden/gear", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/1kyIyrpmiBg/default_live.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/1kyIyrpmiBg/mqdefault_live.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/1kyIyrpmiBg/hqdefault_live.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/1kyIyrpmiBg/sddefault_live.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/1kyIyrpmiBg/maxresdefault_live.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "Coding Garden with CJ", + "playlistId": "PLM_i0obccy3sZGzZdpEtxPcR1iPIV0taQ", + "position": 23, + "resourceId": { + "kind": "youtube#video", + "videoId": "1kyIyrpmiBg" + } + } + } + ] + } \ No newline at end of file diff --git a/04-18-2018/README.md b/episode_001/README.md similarity index 100% rename from 04-18-2018/README.md rename to episode_001/README.md diff --git a/04-18-2018/accum.js b/episode_001/accum.js similarity index 100% rename from 04-18-2018/accum.js rename to episode_001/accum.js diff --git a/04-18-2018/binary-addition.js b/episode_001/binary-addition.js similarity index 100% rename from 04-18-2018/binary-addition.js rename to episode_001/binary-addition.js diff --git a/04-18-2018/century-from-year.js b/episode_001/century-from-year.js similarity index 100% rename from 04-18-2018/century-from-year.js rename to episode_001/century-from-year.js diff --git a/04-18-2018/final-grade.js b/episode_001/final-grade.js similarity index 100% rename from 04-18-2018/final-grade.js rename to episode_001/final-grade.js diff --git a/04-18-2018/morse-code.js b/episode_001/morse-code.js similarity index 100% rename from 04-18-2018/morse-code.js rename to episode_001/morse-code.js diff --git a/04-25-2018/README.md b/episode_002/README.md similarity index 100% rename from 04-25-2018/README.md rename to episode_002/README.md diff --git a/04-25-2018/exes-os.js b/episode_002/exes-os.js similarity index 100% rename from 04-25-2018/exes-os.js rename to episode_002/exes-os.js diff --git a/04-25-2018/fat-fingers.js b/episode_002/fat-fingers.js similarity index 100% rename from 04-25-2018/fat-fingers.js rename to episode_002/fat-fingers.js diff --git a/04-25-2018/jaden-case.js b/episode_002/jaden-case.js similarity index 100% rename from 04-25-2018/jaden-case.js rename to episode_002/jaden-case.js diff --git a/04-25-2018/sum-pairs.js b/episode_002/sum-pairs.js similarity index 100% rename from 04-25-2018/sum-pairs.js rename to episode_002/sum-pairs.js diff --git a/05-02-2018/README.md b/episode_003/README.md similarity index 100% rename from 05-02-2018/README.md rename to episode_003/README.md diff --git a/05-02-2018/dna-compliment.js b/episode_003/dna-compliment.js similarity index 100% rename from 05-02-2018/dna-compliment.js rename to episode_003/dna-compliment.js diff --git a/05-02-2018/iq-test.js b/episode_003/iq-test.js similarity index 100% rename from 05-02-2018/iq-test.js rename to episode_003/iq-test.js diff --git a/05-02-2018/pig-latin.js b/episode_003/pig-latin.js similarity index 100% rename from 05-02-2018/pig-latin.js rename to episode_003/pig-latin.js diff --git a/05-02-2018/take-a-ten-minute-walk.js b/episode_003/take-a-ten-minute-walk.js similarity index 100% rename from 05-02-2018/take-a-ten-minute-walk.js rename to episode_003/take-a-ten-minute-walk.js diff --git a/05-02-2018/vowel-count.js b/episode_003/vowel-count.js similarity index 100% rename from 05-02-2018/vowel-count.js rename to episode_003/vowel-count.js diff --git a/05-09-2018/README.md b/episode_004/README.md similarity index 100% rename from 05-09-2018/README.md rename to episode_004/README.md diff --git a/05-09-2018/count-the-smiley-faces.js b/episode_004/count-the-smiley-faces.js similarity index 100% rename from 05-09-2018/count-the-smiley-faces.js rename to episode_004/count-the-smiley-faces.js diff --git a/05-09-2018/human-readable-time.js b/episode_004/human-readable-time.js similarity index 100% rename from 05-09-2018/human-readable-time.js rename to episode_004/human-readable-time.js diff --git a/05-09-2018/list-filtering.js b/episode_004/list-filtering.js similarity index 100% rename from 05-09-2018/list-filtering.js rename to episode_004/list-filtering.js diff --git a/05-09-2018/maximum-subarray-sum.js b/episode_004/maximum-subarray-sum.js similarity index 100% rename from 05-09-2018/maximum-subarray-sum.js rename to episode_004/maximum-subarray-sum.js diff --git a/05-09-2018/scramblies.js b/episode_004/scramblies.js similarity index 100% rename from 05-09-2018/scramblies.js rename to episode_004/scramblies.js diff --git a/05-09-2018/sum-strings-as-numbers.js b/episode_004/sum-strings-as-numbers.js similarity index 100% rename from 05-09-2018/sum-strings-as-numbers.js rename to episode_004/sum-strings-as-numbers.js diff --git a/05-16-2018/README.md b/episode_005/README.md similarity index 100% rename from 05-16-2018/README.md rename to episode_005/README.md diff --git a/05-16-2018/createPhoneNumber.js b/episode_005/createPhoneNumber.js similarity index 100% rename from 05-16-2018/createPhoneNumber.js rename to episode_005/createPhoneNumber.js diff --git a/05-16-2018/credit-card-mask.js b/episode_005/credit-card-mask.js similarity index 100% rename from 05-16-2018/credit-card-mask.js rename to episode_005/credit-card-mask.js diff --git a/05-16-2018/equal-sides-sum.js b/episode_005/equal-sides-sum.js similarity index 100% rename from 05-16-2018/equal-sides-sum.js rename to episode_005/equal-sides-sum.js diff --git a/05-16-2018/palindromeChainLength.js b/episode_005/palindromeChainLength.js similarity index 100% rename from 05-16-2018/palindromeChainLength.js rename to episode_005/palindromeChainLength.js diff --git a/05-16-2018/roman-numerals-encoder.js b/episode_005/roman-numerals-encoder.js similarity index 100% rename from 05-16-2018/roman-numerals-encoder.js rename to episode_005/roman-numerals-encoder.js diff --git a/05-16-2018/sum-of-two-lowest.js b/episode_005/sum-of-two-lowest.js similarity index 100% rename from 05-16-2018/sum-of-two-lowest.js rename to episode_005/sum-of-two-lowest.js diff --git a/05-23-2018/README.md b/episode_006/README.md similarity index 100% rename from 05-23-2018/README.md rename to episode_006/README.md diff --git a/05-23-2018/calculating-with-functions.js b/episode_006/calculating-with-functions.js similarity index 100% rename from 05-23-2018/calculating-with-functions.js rename to episode_006/calculating-with-functions.js diff --git a/05-23-2018/digital-root.js b/episode_006/digital-root.js similarity index 100% rename from 05-23-2018/digital-root.js rename to episode_006/digital-root.js diff --git a/05-23-2018/dubstep.js b/episode_006/dubstep.js similarity index 100% rename from 05-23-2018/dubstep.js rename to episode_006/dubstep.js diff --git a/05-23-2018/odd-int.js b/episode_006/odd-int.js similarity index 100% rename from 05-23-2018/odd-int.js rename to episode_006/odd-int.js diff --git a/05-23-2018/reverse-polish-notation.js b/episode_006/reverse-polish-notation.js similarity index 100% rename from 05-23-2018/reverse-polish-notation.js rename to episode_006/reverse-polish-notation.js diff --git a/05-23-2018/sum-of-numbers.js b/episode_006/sum-of-numbers.js similarity index 100% rename from 05-23-2018/sum-of-numbers.js rename to episode_006/sum-of-numbers.js diff --git a/05-23-2018/zeros-to-end.js b/episode_006/zeros-to-end.js similarity index 100% rename from 05-23-2018/zeros-to-end.js rename to episode_006/zeros-to-end.js diff --git a/05-30-2018/README.md b/episode_007/README.md similarity index 100% rename from 05-30-2018/README.md rename to episode_007/README.md diff --git a/05-30-2018/anagrams.js b/episode_007/anagrams.js similarity index 100% rename from 05-30-2018/anagrams.js rename to episode_007/anagrams.js diff --git a/05-30-2018/camel-case.js b/episode_007/camel-case.js similarity index 100% rename from 05-30-2018/camel-case.js rename to episode_007/camel-case.js diff --git a/05-30-2018/categorize-new-member.js b/episode_007/categorize-new-member.js similarity index 100% rename from 05-30-2018/categorize-new-member.js rename to episode_007/categorize-new-member.js diff --git a/05-30-2018/isogram.js b/episode_007/isogram.js similarity index 100% rename from 05-30-2018/isogram.js rename to episode_007/isogram.js diff --git a/05-30-2018/multiples-of-3-and-5.js b/episode_007/multiples-of-3-and-5.js similarity index 100% rename from 05-30-2018/multiples-of-3-and-5.js rename to episode_007/multiples-of-3-and-5.js diff --git a/05-30-2018/priori-incantatem.js b/episode_007/priori-incantatem.js similarity index 100% rename from 05-30-2018/priori-incantatem.js rename to episode_007/priori-incantatem.js diff --git a/05-30-2018/rgb-to-hex.js b/episode_007/rgb-to-hex.js similarity index 100% rename from 05-30-2018/rgb-to-hex.js rename to episode_007/rgb-to-hex.js diff --git a/06-06-2018/README.md b/episode_008/README.md similarity index 100% rename from 06-06-2018/README.md rename to episode_008/README.md diff --git a/06-06-2018/are-they-the-same.js b/episode_008/are-they-the-same.js similarity index 100% rename from 06-06-2018/are-they-the-same.js rename to episode_008/are-they-the-same.js diff --git a/06-06-2018/growth-population.js b/episode_008/growth-population.js similarity index 100% rename from 06-06-2018/growth-population.js rename to episode_008/growth-population.js diff --git a/06-06-2018/rot13.js b/episode_008/rot13.js similarity index 100% rename from 06-06-2018/rot13.js rename to episode_008/rot13.js diff --git a/06-06-2018/twice-linear.js b/episode_008/twice-linear.js similarity index 100% rename from 06-06-2018/twice-linear.js rename to episode_008/twice-linear.js diff --git a/06-06-2018/your-order-please.js b/episode_008/your-order-please.js similarity index 100% rename from 06-06-2018/your-order-please.js rename to episode_008/your-order-please.js diff --git a/06-13-2018/README.md b/episode_009/README.md similarity index 100% rename from 06-13-2018/README.md rename to episode_009/README.md diff --git a/06-13-2018/character-recognition-mistakes.js b/episode_009/character-recognition-mistakes.js similarity index 100% rename from 06-13-2018/character-recognition-mistakes.js rename to episode_009/character-recognition-mistakes.js diff --git a/06-13-2018/narcissistic-numbers.js b/episode_009/narcissistic-numbers.js similarity index 100% rename from 06-13-2018/narcissistic-numbers.js rename to episode_009/narcissistic-numbers.js diff --git a/06-13-2018/nested-structure-compare.js b/episode_009/nested-structure-compare.js similarity index 100% rename from 06-13-2018/nested-structure-compare.js rename to episode_009/nested-structure-compare.js diff --git a/06-13-2018/regex-password.js b/episode_009/regex-password.js similarity index 100% rename from 06-13-2018/regex-password.js rename to episode_009/regex-password.js diff --git a/06-20-2018/README.md b/episode_010/README.md similarity index 100% rename from 06-20-2018/README.md rename to episode_010/README.md diff --git a/06-20-2018/find-divisors.js b/episode_010/find-divisors.js similarity index 100% rename from 06-20-2018/find-divisors.js rename to episode_010/find-divisors.js diff --git a/06-20-2018/pete-the-baker.js b/episode_010/pete-the-baker.js similarity index 100% rename from 06-20-2018/pete-the-baker.js rename to episode_010/pete-the-baker.js diff --git a/06-20-2018/spinning-words.js b/episode_010/spinning-words.js similarity index 100% rename from 06-20-2018/spinning-words.js rename to episode_010/spinning-words.js diff --git a/06-27-2018/README.md b/episode_011/README.md similarity index 100% rename from 06-27-2018/README.md rename to episode_011/README.md diff --git a/06-27-2018/counting-duplicates.js b/episode_011/counting-duplicates.js similarity index 100% rename from 06-27-2018/counting-duplicates.js rename to episode_011/counting-duplicates.js diff --git a/06-27-2018/square-digits.js b/episode_011/square-digits.js similarity index 100% rename from 06-27-2018/square-digits.js rename to episode_011/square-digits.js diff --git a/06-27-2018/test.html b/episode_011/test.html similarity index 100% rename from 06-27-2018/test.html rename to episode_011/test.html diff --git a/06-27-2018/weight-for-weight.js b/episode_011/weight-for-weight.js similarity index 100% rename from 06-27-2018/weight-for-weight.js rename to episode_011/weight-for-weight.js diff --git a/07-11-2018/README.md b/episode_012/README.md similarity index 100% rename from 07-11-2018/README.md rename to episode_012/README.md diff --git a/07-11-2018/format-string-names.js b/episode_012/format-string-names.js similarity index 100% rename from 07-11-2018/format-string-names.js rename to episode_012/format-string-names.js diff --git a/07-11-2018/pagination-helper.js b/episode_012/pagination-helper.js similarity index 100% rename from 07-11-2018/pagination-helper.js rename to episode_012/pagination-helper.js diff --git a/07-11-2018/sum-of-odd-numbers.js b/episode_012/sum-of-odd-numbers.js similarity index 100% rename from 07-11-2018/sum-of-odd-numbers.js rename to episode_012/sum-of-odd-numbers.js diff --git a/08-01-2018/README.md b/episode_013/README.md similarity index 100% rename from 08-01-2018/README.md rename to episode_013/README.md diff --git a/08-01-2018/firstNonRepeatingCharacter.js b/episode_013/firstNonRepeatingCharacter.js similarity index 100% rename from 08-01-2018/firstNonRepeatingCharacter.js rename to episode_013/firstNonRepeatingCharacter.js diff --git a/08-01-2018/parity-outlier.js b/episode_013/parity-outlier.js similarity index 100% rename from 08-01-2018/parity-outlier.js rename to episode_013/parity-outlier.js diff --git a/08-01-2018/printer-errors.js b/episode_013/printer-errors.js similarity index 100% rename from 08-01-2018/printer-errors.js rename to episode_013/printer-errors.js diff --git a/08-01-2018/series-sum.js b/episode_013/series-sum.js similarity index 100% rename from 08-01-2018/series-sum.js rename to episode_013/series-sum.js diff --git a/08-22-2018/README.md b/episode_014/README.md similarity index 100% rename from 08-22-2018/README.md rename to episode_014/README.md diff --git a/08-22-2018/duplicateEncode.js b/episode_014/duplicateEncode.js similarity index 100% rename from 08-22-2018/duplicateEncode.js rename to episode_014/duplicateEncode.js diff --git a/08-22-2018/memoizeFibonacci.js b/episode_014/memoizeFibonacci.js similarity index 100% rename from 08-22-2018/memoizeFibonacci.js rename to episode_014/memoizeFibonacci.js diff --git a/08-22-2018/snail.js b/episode_014/snail.js similarity index 100% rename from 08-22-2018/snail.js rename to episode_014/snail.js diff --git a/08-22-2018/twoToOne.js b/episode_014/twoToOne.js similarity index 100% rename from 08-22-2018/twoToOne.js rename to episode_014/twoToOne.js diff --git a/08-29-2018/README.md b/episode_015/README.md similarity index 100% rename from 08-29-2018/README.md rename to episode_015/README.md diff --git a/08-29-2018/dont-rely-on-luck.js b/episode_015/dont-rely-on-luck.js similarity index 100% rename from 08-29-2018/dont-rely-on-luck.js rename to episode_015/dont-rely-on-luck.js diff --git a/08-29-2018/find-the-capitals.js b/episode_015/find-the-capitals.js similarity index 100% rename from 08-29-2018/find-the-capitals.js rename to episode_015/find-the-capitals.js diff --git a/08-29-2018/range-extraction.js b/episode_015/range-extraction.js similarity index 100% rename from 08-29-2018/range-extraction.js rename to episode_015/range-extraction.js diff --git a/08-29-2018/the-hashtag-generator.js b/episode_015/the-hashtag-generator.js similarity index 100% rename from 08-29-2018/the-hashtag-generator.js rename to episode_015/the-hashtag-generator.js diff --git a/09-12-2018/README.md b/episode_016/README.md similarity index 100% rename from 09-12-2018/README.md rename to episode_016/README.md diff --git a/09-12-2018/message-from-alca.js b/episode_016/message-from-alca.js similarity index 100% rename from 09-12-2018/message-from-alca.js rename to episode_016/message-from-alca.js diff --git a/09-12-2018/replace-with-alphabet-position.js b/episode_016/replace-with-alphabet-position.js similarity index 100% rename from 09-12-2018/replace-with-alphabet-position.js rename to episode_016/replace-with-alphabet-position.js diff --git a/09-12-2018/valid-parentheses.js b/episode_016/valid-parentheses.js similarity index 100% rename from 09-12-2018/valid-parentheses.js rename to episode_016/valid-parentheses.js diff --git a/09-12-2018/youre-a-square.js b/episode_016/youre-a-square.js similarity index 100% rename from 09-12-2018/youre-a-square.js rename to episode_016/youre-a-square.js diff --git a/09-19-2018/README.md b/episode_017/README.md similarity index 100% rename from 09-19-2018/README.md rename to episode_017/README.md diff --git a/09-19-2018/double-cola.js b/episode_017/double-cola.js similarity index 100% rename from 09-19-2018/double-cola.js rename to episode_017/double-cola.js diff --git a/09-19-2018/exponential-comparison.js b/episode_017/exponential-comparison.js similarity index 100% rename from 09-19-2018/exponential-comparison.js rename to episode_017/exponential-comparison.js diff --git a/09-19-2018/ones-and-zeros.js b/episode_017/ones-and-zeros.js similarity index 100% rename from 09-19-2018/ones-and-zeros.js rename to episode_017/ones-and-zeros.js diff --git a/09-19-2018/square-every-digit.js b/episode_017/square-every-digit.js similarity index 100% rename from 09-19-2018/square-every-digit.js rename to episode_017/square-every-digit.js diff --git a/09-26-2018/README.md b/episode_018/README.md similarity index 100% rename from 09-26-2018/README.md rename to episode_018/README.md diff --git a/09-26-2018/friend-or-foe.js b/episode_018/friend-or-foe.js similarity index 100% rename from 09-26-2018/friend-or-foe.js rename to episode_018/friend-or-foe.js diff --git a/09-26-2018/greed-is-good.js b/episode_018/greed-is-good.js similarity index 100% rename from 09-26-2018/greed-is-good.js rename to episode_018/greed-is-good.js diff --git a/09-26-2018/math-issues.js b/episode_018/math-issues.js similarity index 100% rename from 09-26-2018/math-issues.js rename to episode_018/math-issues.js diff --git a/09-26-2018/scratch.js b/episode_018/scratch.js similarity index 100% rename from 09-26-2018/scratch.js rename to episode_018/scratch.js diff --git a/09-26-2018/which-are-in.js b/episode_018/which-are-in.js similarity index 100% rename from 09-26-2018/which-are-in.js rename to episode_018/which-are-in.js diff --git a/10-03-2018/README.md b/episode_019/README.md similarity index 100% rename from 10-03-2018/README.md rename to episode_019/README.md diff --git a/10-03-2018/bouncing-balls.js b/episode_019/bouncing-balls.js similarity index 100% rename from 10-03-2018/bouncing-balls.js rename to episode_019/bouncing-balls.js diff --git a/10-03-2018/most-consecutive-zeros.js b/episode_019/most-consecutive-zeros.js similarity index 100% rename from 10-03-2018/most-consecutive-zeros.js rename to episode_019/most-consecutive-zeros.js diff --git a/10-03-2018/number-combos.js b/episode_019/number-combos.js similarity index 100% rename from 10-03-2018/number-combos.js rename to episode_019/number-combos.js diff --git a/10-03-2018/pascalcase-into-snake-case.js b/episode_019/pascalcase-into-snake-case.js similarity index 100% rename from 10-03-2018/pascalcase-into-snake-case.js rename to episode_019/pascalcase-into-snake-case.js diff --git a/10-03-2018/sum-of-a-sequence.js b/episode_019/sum-of-a-sequence.js similarity index 100% rename from 10-03-2018/sum-of-a-sequence.js rename to episode_019/sum-of-a-sequence.js diff --git a/10-31-2018/README.md b/episode_020/README.md similarity index 100% rename from 10-31-2018/README.md rename to episode_020/README.md diff --git a/10-31-2018/halloween-sweets.js b/episode_020/halloween-sweets.js similarity index 100% rename from 10-31-2018/halloween-sweets.js rename to episode_020/halloween-sweets.js diff --git a/10-31-2018/pirate-code.js b/episode_020/pirate-code.js similarity index 100% rename from 10-31-2018/pirate-code.js rename to episode_020/pirate-code.js diff --git a/10-31-2018/trick-or-treat.js b/episode_020/trick-or-treat.js similarity index 100% rename from 10-31-2018/trick-or-treat.js rename to episode_020/trick-or-treat.js diff --git a/11-14-2018/README.md b/episode_021/README.md similarity index 100% rename from 11-14-2018/README.md rename to episode_021/README.md diff --git a/11-14-2018/did-i-finish-my-sudoku.js b/episode_021/did-i-finish-my-sudoku.js similarity index 100% rename from 11-14-2018/did-i-finish-my-sudoku.js rename to episode_021/did-i-finish-my-sudoku.js diff --git a/11-14-2018/distributing-candies.js b/episode_021/distributing-candies.js similarity index 100% rename from 11-14-2018/distributing-candies.js rename to episode_021/distributing-candies.js diff --git a/11-14-2018/vasya-clerk.js b/episode_021/vasya-clerk.js similarity index 100% rename from 11-14-2018/vasya-clerk.js rename to episode_021/vasya-clerk.js diff --git a/12-12-2018/README.md b/episode_022/README.md similarity index 100% rename from 12-12-2018/README.md rename to episode_022/README.md diff --git a/12-12-2018/delete-occurrences-of-an-element-if-it-occurs-more-than-n-times.js b/episode_022/delete-occurrences-of-an-element-if-it-occurs-more-than-n-times.js similarity index 100% rename from 12-12-2018/delete-occurrences-of-an-element-if-it-occurs-more-than-n-times.js rename to episode_022/delete-occurrences-of-an-element-if-it-occurs-more-than-n-times.js diff --git a/12-12-2018/regex-validate-pin-code.js b/episode_022/regex-validate-pin-code.js similarity index 100% rename from 12-12-2018/regex-validate-pin-code.js rename to episode_022/regex-validate-pin-code.js diff --git a/12-12-2018/tic-tac-toe-checker.js b/episode_022/tic-tac-toe-checker.js similarity index 100% rename from 12-12-2018/tic-tac-toe-checker.js rename to episode_022/tic-tac-toe-checker.js diff --git a/12-12-2018/vector-class.js b/episode_022/vector-class.js similarity index 100% rename from 12-12-2018/vector-class.js rename to episode_022/vector-class.js diff --git a/01-16-2019/README.md b/episode_023/README.md similarity index 100% rename from 01-16-2019/README.md rename to episode_023/README.md diff --git a/01-16-2019/remove-the-minimum.js b/episode_023/remove-the-minimum.js similarity index 100% rename from 01-16-2019/remove-the-minimum.js rename to episode_023/remove-the-minimum.js diff --git a/01-16-2019/rot13.js b/episode_023/rot13.js similarity index 100% rename from 01-16-2019/rot13.js rename to episode_023/rot13.js diff --git a/01-16-2019/strip-comments.js b/episode_023/strip-comments.js similarity index 100% rename from 01-16-2019/strip-comments.js rename to episode_023/strip-comments.js diff --git a/01-16-2019/title-case.js b/episode_023/title-case.js similarity index 100% rename from 01-16-2019/title-case.js rename to episode_023/title-case.js