From be6048469c51fc2a57b19f7feeaad5357b7d7838 Mon Sep 17 00:00:00 2001 From: Rich Vigorito Date: Tue, 23 Sep 2025 12:13:04 -0700 Subject: [PATCH 1/4] mv to single dir to not clutter repo homepage --- .gitignore | 1 + README.md | 44 +++++++++--------- .../week10_xor_ftw}/README.md | 0 .../solutions/atbash_cipher/atbash.py | 0 .../solutions/caesar_cipher/caesar.cpp | 0 .../solutions/xor_cipher/c++/README.md | 0 .../solutions/xor_cipher/c++/encryption_key | 0 .../solutions/xor_cipher/c++/xor_encr.cpp | 0 .../solutions/xor_cipher/go/README.md | 0 .../solutions/xor_cipher/go/xor_encr.go | 0 .../solutions/xor_cipher/python/README.md | 0 .../solutions/xor_cipher/python/key_plain_txt | 0 .../solutions/xor_cipher/python/xor_encr.py | 0 .../week11_we_are_in}/README.md | 2 +- .../week11_we_are_in}/enc1.bin | Bin .../week11_we_are_in}/enc2.bin | 0 .../week11_we_are_in}/enc2.py | 0 .../week11_we_are_in}/solutions/ceasar.py | 0 .../solutions/crack_ceasar.sh | 0 .../week11_we_are_in}/solutions/crack_xor.sh | 0 .../week11_we_are_in}/solutions/xorcipher.py | 0 .../week12_access_granted}/README.md | 0 .../README.md | 0 .../week14_now_gimme_my_money}/README.md | 0 .../solutions/engine.c | 0 .../solutions/engine.go | 0 .../solutions/engine.js | 0 .../solutions/engine.py | 0 .../week15_terminal_exorcism}/Dockerfile | 0 .../week15_terminal_exorcism}/README.md | 0 .../make_weird_files.sh | 0 .../week16_pen_and_paper}/README.md | 0 .../week17_page_peelers}/README.md | 0 .../week17_page_peelers}/solution/README.md | 0 .../week17_page_peelers}/solution/scrape.py | 0 .../week18_pascals_pascal_triangle}/README.md | 0 .../week19_shunting_yard_algo}/README.md | 0 .../solutions/yard.cpp | 0 .../week1_gossip_spreads}/README.md | 0 .../solutions/c/README.md | 0 .../solutions/c/broker.c | 0 .../week1_gossip_spreads}/solutions/c/pub.c | 0 .../week1_gossip_spreads}/solutions/c/sub.c | 0 .../solutions/go/README.md | 0 .../week1_gossip_spreads}/solutions/go/pub.go | 0 .../week1_gossip_spreads}/solutions/go/sub.go | 0 .../solutions/python/README.md | 2 +- .../solutions/python/api.py | 0 .../solutions/python/broker.py | 0 .../solutions/python/requirements.txt | 0 .../solutions/react_frontend/README.md | 0 .../react_frontend/pubsub-ui/.gitignore | 0 .../react_frontend/pubsub-ui/README.md | 0 .../pubsub-ui/package-lock.json | 0 .../react_frontend/pubsub-ui/package.json | 0 .../pubsub-ui/public/favicon.ico | Bin .../pubsub-ui/public/index.html | 0 .../pubsub-ui/public/logo192.png | Bin .../pubsub-ui/public/logo512.png | Bin .../pubsub-ui/public/manifest.json | 0 .../pubsub-ui/public/robots.txt | 0 .../react_frontend/pubsub-ui/src/App.css | 0 .../react_frontend/pubsub-ui/src/App.js | 0 .../react_frontend/pubsub-ui/src/App.test.js | 0 .../react_frontend/pubsub-ui/src/Publisher.js | 0 .../pubsub-ui/src/Subscriber.js | 0 .../react_frontend/pubsub-ui/src/index.css | 0 .../react_frontend/pubsub-ui/src/index.js | 0 .../react_frontend/pubsub-ui/src/logo.svg | 0 .../pubsub-ui/src/reportWebVitals.js | 0 .../pubsub-ui/src/setupTests.js | 0 .../week20_fn_solid}/README.md | 0 .../week20_fn_solid}/env/Dockerfile | 0 .../week20_fn_solid}/env/Makefile | 0 .../env/challenge_files/dip_vending.ts | 0 .../env/challenge_files/isp_robot.java | 0 .../env/challenge_files/lsp_vehicle.cs | 0 .../env/challenge_files/ocp_pricing.go | 0 .../env/challenge_files/srp_printer.py | 0 .../env/solutions/dip_vending.ts | 0 .../env/solutions/isp_robot.java | 0 .../env/solutions/lsp_vehicle.cs | 0 .../env/solutions/ocp_pricing.go | 0 .../env/solutions/srp_printer.py | 0 .../week21_dennis_ritchie}/README.md | 0 .../solutions/hello_world.c | 0 .../solutions/input_to_output.c | 0 .../solutions/pointer_string.c | 0 .../week22_the_ole_pubsub_pub}/README.md | 0 .../solutions/broker.c | 0 .../solutions/pub.c | 0 .../solutions/sub.c | 0 .../week2_the_conga_line}/README.md | 0 .../solutions/go/linkedlist.go | 0 .../solutions/python/linkedlist.py | 0 .../week3_this_math_aint_mathin}/README.md | 0 .../solutions/c/arith.c | 0 .../solutions/erlang/arith.erl | 0 .../solutions/erlang/arith_tests.erl | 0 .../README.md | 0 .../files/dame.json | 0 .../files/lillard-game-pbp.txt | 0 .../files/parse_game.sh | 0 .../files/rudy-game-pbp.txt | 0 .../files/rudy.json | 0 .../files/trailblazers.png | Bin .../files/wilt.json | 0 .../solutions/bash/README.md | 0 .../solutions/bash/simulate.sh | 0 .../solutions/bash/simulation.gif | Bin .../solutions/bash/simulation.webm | Bin .../solutions/python/matplotlib_ex/README.md | 0 .../solutions/python/matplotlib_ex/graph.png | Bin .../python/matplotlib_ex/matplotlib_ex.py | 0 .../python/matplotlib_ex/requirements.txt | 0 .../week5_swappin_aint_easy}/README.md | 0 .../solutions/Dockerfile | 0 .../solutions/run_all.sh | 0 .../solutions/swap/Swap.java | 0 .../solutions/swap/swap.c | 0 .../solutions/swap/swap.clj | 0 .../solutions/swap/swap.cpp | 0 .../solutions/swap/swap.erl | 0 .../solutions/swap/swap.f90 | 0 .../solutions/swap/swap.go | 0 .../solutions/swap/swap.hs | 0 .../solutions/swap/swap.lisp | 0 .../solutions/swap/swap.php | 0 .../solutions/swap/swap.py | 0 .../solutions/swap/swap.rb | 0 .../solutions/swap/swap.rs | 0 .../solutions/swap/swap.scala | 0 .../solutions/swap/swap.sh | 0 .../week6_stay_solid_friends}/README.md | 0 .../bad_code/cpp_bad_code.cpp | 0 .../bad_code/go_bad_code.go | 0 .../bad_code/php_bad_code.php | 0 .../bad_code/python_bad_code.py | 0 .../bad_code/ruby_bad_code.rb | 0 .../solutions/refactored.cpp | 0 .../solutions/refactored.go | 0 .../solutions/refactored.php | 0 .../solutions/refactored.py | 0 .../solutions/refactored.rb | 0 .../week7_a_variable_says_what}/README.md | 0 .../week7_a_variable_says_what}/var_vars.php | 0 .../week8_red_solo_cups}/README.md | 0 .../week9_inception}/README.md | 0 .../C#_calls_F#/CSharpApp/CSharpApp.csproj | 0 .../C#_calls_F#/CSharpApp/Program.cs | 0 .../solutions/C#_calls_F#/HelloLib/Hello.fs | 0 .../C#_calls_F#/HelloLib/HelloLib.fsproj | 0 .../solutions/C#_calls_F#/README.md | 0 .../solutions/c_calls_assembly/hello.asm | 0 .../solutions/c_calls_assembly/hello.c | 0 .../solutions/inception/README.md | 0 .../solutions/inception/c/hello.asm | 0 .../solutions/inception/c/main.c | 0 .../solutions/inception/c/nq.c | 0 .../solutions/inception/c/nqueens.h | 0 .../solutions/inception/go/main.go | 0 .../solutions/inception/go/nq.native.go | 0 .../solutions/inception/go/pythonlib.nq.go | 0 .../solutions/inception/python/nq.native.py | 0 .../solutions/inception/python/nq.py | 0 .../solutions/java_calls_kotlin/Hello.kt | 0 .../solutions/java_calls_kotlin/Main.java | 0 .../solutions/wtf_is_the_internet/README.md | 0 .../solutions/wtf_is_the_internet/c_add.c | 0 .../solutions/wtf_is_the_internet/c_add.wasm | Bin .../solutions/wtf_is_the_internet/wtf.html | 0 171 files changed, 25 insertions(+), 24 deletions(-) rename {week10_xor_ftw => challenges/week10_xor_ftw}/README.md (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/atbash_cipher/atbash.py (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/caesar_cipher/caesar.cpp (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/c++/README.md (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/c++/encryption_key (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/c++/xor_encr.cpp (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/go/README.md (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/go/xor_encr.go (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/python/README.md (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/python/key_plain_txt (100%) rename {week10_xor_ftw => challenges/week10_xor_ftw}/solutions/xor_cipher/python/xor_encr.py (100%) rename {week11_we_are_in => challenges/week11_we_are_in}/README.md (96%) rename {week11_we_are_in => challenges/week11_we_are_in}/enc1.bin (100%) rename {week11_we_are_in => challenges/week11_we_are_in}/enc2.bin (100%) rename {week11_we_are_in => challenges/week11_we_are_in}/enc2.py (100%) rename {week11_we_are_in => challenges/week11_we_are_in}/solutions/ceasar.py (100%) rename {week11_we_are_in => challenges/week11_we_are_in}/solutions/crack_ceasar.sh (100%) rename {week11_we_are_in => challenges/week11_we_are_in}/solutions/crack_xor.sh (100%) rename {week11_we_are_in => challenges/week11_we_are_in}/solutions/xorcipher.py (100%) rename {week12_access_granted => challenges/week12_access_granted}/README.md (100%) rename {week13_greatest_programming_book_ever_written => challenges/week13_greatest_programming_book_ever_written}/README.md (100%) rename {week14_now_gimme_my_money => challenges/week14_now_gimme_my_money}/README.md (100%) rename {week14_now_gimme_my_money => challenges/week14_now_gimme_my_money}/solutions/engine.c (100%) rename {week14_now_gimme_my_money => challenges/week14_now_gimme_my_money}/solutions/engine.go (100%) rename {week14_now_gimme_my_money => challenges/week14_now_gimme_my_money}/solutions/engine.js (100%) rename {week14_now_gimme_my_money => challenges/week14_now_gimme_my_money}/solutions/engine.py (100%) rename {week15_terminal_exorcism => challenges/week15_terminal_exorcism}/Dockerfile (100%) rename {week15_terminal_exorcism => challenges/week15_terminal_exorcism}/README.md (100%) rename {week15_terminal_exorcism => challenges/week15_terminal_exorcism}/make_weird_files.sh (100%) rename {week16_pen_and_paper => challenges/week16_pen_and_paper}/README.md (100%) rename {week17_page_peelers => challenges/week17_page_peelers}/README.md (100%) rename {week17_page_peelers => challenges/week17_page_peelers}/solution/README.md (100%) rename {week17_page_peelers => challenges/week17_page_peelers}/solution/scrape.py (100%) rename {week18_pascals_pascal_triangle => challenges/week18_pascals_pascal_triangle}/README.md (100%) rename {week19_shunting_yard_algo => challenges/week19_shunting_yard_algo}/README.md (100%) rename {week19_shunting_yard_algo => challenges/week19_shunting_yard_algo}/solutions/yard.cpp (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/README.md (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/c/README.md (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/c/broker.c (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/c/pub.c (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/c/sub.c (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/go/README.md (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/go/pub.go (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/go/sub.go (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/python/README.md (96%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/python/api.py (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/python/broker.py (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/python/requirements.txt (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/README.md (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/.gitignore (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/README.md (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/package-lock.json (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/package.json (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/public/favicon.ico (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/public/index.html (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/public/logo192.png (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/public/logo512.png (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/public/manifest.json (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/public/robots.txt (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/App.css (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/App.js (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/App.test.js (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/Publisher.js (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/Subscriber.js (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/index.css (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/index.js (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/logo.svg (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js (100%) rename {week1_gossip_spreads => challenges/week1_gossip_spreads}/solutions/react_frontend/pubsub-ui/src/setupTests.js (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/README.md (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/Dockerfile (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/Makefile (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/challenge_files/dip_vending.ts (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/challenge_files/isp_robot.java (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/challenge_files/lsp_vehicle.cs (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/challenge_files/ocp_pricing.go (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/challenge_files/srp_printer.py (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/solutions/dip_vending.ts (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/solutions/isp_robot.java (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/solutions/lsp_vehicle.cs (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/solutions/ocp_pricing.go (100%) rename {week20_fn_solid => challenges/week20_fn_solid}/env/solutions/srp_printer.py (100%) rename {week21_dennis_ritchie => challenges/week21_dennis_ritchie}/README.md (100%) rename {week21_dennis_ritchie => challenges/week21_dennis_ritchie}/solutions/hello_world.c (100%) rename {week21_dennis_ritchie => challenges/week21_dennis_ritchie}/solutions/input_to_output.c (100%) rename {week21_dennis_ritchie => challenges/week21_dennis_ritchie}/solutions/pointer_string.c (100%) rename {week22_the_ole_pubsub_pub => challenges/week22_the_ole_pubsub_pub}/README.md (100%) rename {week22_the_ole_pubsub_pub => challenges/week22_the_ole_pubsub_pub}/solutions/broker.c (100%) rename {week22_the_ole_pubsub_pub => challenges/week22_the_ole_pubsub_pub}/solutions/pub.c (100%) rename {week22_the_ole_pubsub_pub => challenges/week22_the_ole_pubsub_pub}/solutions/sub.c (100%) rename {week2_the_conga_line => challenges/week2_the_conga_line}/README.md (100%) rename {week2_the_conga_line => challenges/week2_the_conga_line}/solutions/go/linkedlist.go (100%) rename {week2_the_conga_line => challenges/week2_the_conga_line}/solutions/python/linkedlist.py (100%) rename {week3_this_math_aint_mathin => challenges/week3_this_math_aint_mathin}/README.md (100%) rename {week3_this_math_aint_mathin => challenges/week3_this_math_aint_mathin}/solutions/c/arith.c (100%) rename {week3_this_math_aint_mathin => challenges/week3_this_math_aint_mathin}/solutions/erlang/arith.erl (100%) rename {week3_this_math_aint_mathin => challenges/week3_this_math_aint_mathin}/solutions/erlang/arith_tests.erl (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/README.md (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/files/dame.json (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/files/lillard-game-pbp.txt (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/files/parse_game.sh (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/files/rudy-game-pbp.txt (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/files/rudy.json (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/files/trailblazers.png (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/files/wilt.json (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/bash/README.md (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/bash/simulate.sh (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/bash/simulation.gif (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/bash/simulation.webm (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/python/matplotlib_ex/README.md (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/python/matplotlib_ex/graph.png (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/python/matplotlib_ex/matplotlib_ex.py (100%) rename {week4_wiltchamberlains_100_point_game => challenges/week4_wiltchamberlains_100_point_game}/solutions/python/matplotlib_ex/requirements.txt (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/README.md (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/Dockerfile (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/run_all.sh (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/Swap.java (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.c (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.clj (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.cpp (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.erl (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.f90 (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.go (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.hs (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.lisp (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.php (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.py (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.rb (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.rs (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.scala (100%) rename {week5_swappin_aint_easy => challenges/week5_swappin_aint_easy}/solutions/swap/swap.sh (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/README.md (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/bad_code/cpp_bad_code.cpp (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/bad_code/go_bad_code.go (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/bad_code/php_bad_code.php (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/bad_code/python_bad_code.py (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/bad_code/ruby_bad_code.rb (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/solutions/refactored.cpp (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/solutions/refactored.go (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/solutions/refactored.php (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/solutions/refactored.py (100%) rename {week6_stay_solid_friends => challenges/week6_stay_solid_friends}/solutions/refactored.rb (100%) rename {week7_a_variable_says_what => challenges/week7_a_variable_says_what}/README.md (100%) rename {week7_a_variable_says_what => challenges/week7_a_variable_says_what}/var_vars.php (100%) rename {week8_red_solo_cups => challenges/week8_red_solo_cups}/README.md (100%) rename {week9_inception => challenges/week9_inception}/README.md (100%) rename {week9_inception => challenges/week9_inception}/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj (100%) rename {week9_inception => challenges/week9_inception}/solutions/C#_calls_F#/CSharpApp/Program.cs (100%) rename {week9_inception => challenges/week9_inception}/solutions/C#_calls_F#/HelloLib/Hello.fs (100%) rename {week9_inception => challenges/week9_inception}/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj (100%) rename {week9_inception => challenges/week9_inception}/solutions/C#_calls_F#/README.md (100%) rename {week9_inception => challenges/week9_inception}/solutions/c_calls_assembly/hello.asm (100%) rename {week9_inception => challenges/week9_inception}/solutions/c_calls_assembly/hello.c (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/README.md (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/c/hello.asm (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/c/main.c (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/c/nq.c (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/c/nqueens.h (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/go/main.go (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/go/nq.native.go (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/go/pythonlib.nq.go (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/python/nq.native.py (100%) rename {week9_inception => challenges/week9_inception}/solutions/inception/python/nq.py (100%) rename {week9_inception => challenges/week9_inception}/solutions/java_calls_kotlin/Hello.kt (100%) rename {week9_inception => challenges/week9_inception}/solutions/java_calls_kotlin/Main.java (100%) rename {week9_inception => challenges/week9_inception}/solutions/wtf_is_the_internet/README.md (100%) rename {week9_inception => challenges/week9_inception}/solutions/wtf_is_the_internet/c_add.c (100%) rename {week9_inception => challenges/week9_inception}/solutions/wtf_is_the_internet/c_add.wasm (100%) rename {week9_inception => challenges/week9_inception}/solutions/wtf_is_the_internet/wtf.html (100%) diff --git a/.gitignore b/.gitignore index bd67aeb..405f0df 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ __pycache__/ *.pyo *.pyd venv/ +*.venv/ # === Java === *.class diff --git a/README.md b/README.md index 16c0438..48cd02e 100644 --- a/README.md +++ b/README.md @@ -6,32 +6,32 @@ The challenges will be released weekly and come in different formats: head-to-he ## ๐Ÿ†• Latest Challenge -**[Week 22 - Ye Ole PubSub Pub](./week22_the_ole_pubsub_pub)** +**[Week 22 - Ye Ole PubSub Pub](challenges/week22_the_ole_pubsub_pub)** ### ๐Ÿ—‚ All Challenges #### โœ… Completed Challenges -- [Week 21 - Dennis Ritchie](./week21_dennis_ritchie) -- [Week 20 - FN(solid)](./week20_fn_solid) -- [Week 19 - Shunting Yard](./week19_shunting_yard_algo) -- [Week 18 - Pascals Pascal Triangle](./week18_pascals_pascal_triangle) -- [Week 17 - Page Peelers ](./week17_page_peelers) -- [Week 16 - Pen and Paper ](./week16_pen_and_paper) -- [Week 15 - Terminal Exorcism ](./week15_terminal_exorcism) -- [Week 14 - Now gimme my money ](./week14_now_gimme_my_money) -- [Week 13 - The Greatest Programming Book Written. Ever.](./week13_greatest_programming_book_ever_written) -- [Week 12 - Access Granted](./week12_access_granted) -- [Week 11 - We're in!](./week11_we_are_in) -- [Week 10 - XOR FTW](./week10_xor_ftw) -- [Week 9 - We Need To Go Deeper](./week9_inception) -- [Week 8 - Red Solo Cups](./week8_red_solo_cups) -- [Week 7 - A Variable Says What?](./week7_a_variable_says_what) -- [Week 6 - Stay Solid Friends](./week6_stay_solid_friends) -- [Week 5 - Swappin Aint Easy](./week5_swappin_aint_easy) -- [Week 4 - Wilt Chamberlain's 100 Point Game](./week4_wiltchamberlains_100_point_game) -- [Week 3 - This Math Aint Math'n](./week3_this_math_aint_mathin) -- [Week 2 - Join The Conga Line](./week2_the_conga_line) -- [Week 1 - Gossip Spreads](./week1_gossip_spreads) +- [Week 21 - Dennis Ritchie](challenges/week21_dennis_ritchie) +- [Week 20 - FN(solid)](challenges/week20_fn_solid) +- [Week 19 - Shunting Yard](challenges/week19_shunting_yard_algo) +- [Week 18 - Pascals Pascal Triangle](challenges/week18_pascals_pascal_triangle) +- [Week 17 - Page Peelers ](challenges/week17_page_peelers) +- [Week 16 - Pen and Paper ](challenges/week16_pen_and_paper) +- [Week 15 - Terminal Exorcism ](challenges/week15_terminal_exorcism) +- [Week 14 - Now gimme my money ](challenges/week14_now_gimme_my_money) +- [Week 13 - The Greatest Programming Book Written. Ever.](challenges/week13_greatest_programming_book_ever_written) +- [Week 12 - Access Granted](challenges/week12_access_granted) +- [Week 11 - We're in!](challenges/week11_we_are_in) +- [Week 10 - XOR FTW](challenges/week10_xor_ftw) +- [Week 9 - We Need To Go Deeper](challenges/week9_inception) +- [Week 8 - Red Solo Cups](challenges/week8_red_solo_cups) +- [Week 7 - A Variable Says What?](challenges/week7_a_variable_says_what) +- [Week 6 - Stay Solid Friends](challenges/week6_stay_solid_friends) +- [Week 5 - Swappin Aint Easy](challenges/week5_swappin_aint_easy) +- [Week 4 - Wilt Chamberlain's 100 Point Game](challenges/week4_wiltchamberlains_100_point_game) +- [Week 3 - This Math Aint Math'n](challenges/week3_this_math_aint_mathin) +- [Week 2 - Join The Conga Line](challenges/week2_the_conga_line) +- [Week 1 - Gossip Spreads](challenges/week1_gossip_spreads) #### ๐Ÿ”œ Upcoming Challenges - The Greatest Programming Book Ever Written diff --git a/week10_xor_ftw/README.md b/challenges/week10_xor_ftw/README.md similarity index 100% rename from week10_xor_ftw/README.md rename to challenges/week10_xor_ftw/README.md diff --git a/week10_xor_ftw/solutions/atbash_cipher/atbash.py b/challenges/week10_xor_ftw/solutions/atbash_cipher/atbash.py similarity index 100% rename from week10_xor_ftw/solutions/atbash_cipher/atbash.py rename to challenges/week10_xor_ftw/solutions/atbash_cipher/atbash.py diff --git a/week10_xor_ftw/solutions/caesar_cipher/caesar.cpp b/challenges/week10_xor_ftw/solutions/caesar_cipher/caesar.cpp similarity index 100% rename from week10_xor_ftw/solutions/caesar_cipher/caesar.cpp rename to challenges/week10_xor_ftw/solutions/caesar_cipher/caesar.cpp diff --git a/week10_xor_ftw/solutions/xor_cipher/c++/README.md b/challenges/week10_xor_ftw/solutions/xor_cipher/c++/README.md similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/c++/README.md rename to challenges/week10_xor_ftw/solutions/xor_cipher/c++/README.md diff --git a/week10_xor_ftw/solutions/xor_cipher/c++/encryption_key b/challenges/week10_xor_ftw/solutions/xor_cipher/c++/encryption_key similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/c++/encryption_key rename to challenges/week10_xor_ftw/solutions/xor_cipher/c++/encryption_key diff --git a/week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp b/challenges/week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp rename to challenges/week10_xor_ftw/solutions/xor_cipher/c++/xor_encr.cpp diff --git a/week10_xor_ftw/solutions/xor_cipher/go/README.md b/challenges/week10_xor_ftw/solutions/xor_cipher/go/README.md similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/go/README.md rename to challenges/week10_xor_ftw/solutions/xor_cipher/go/README.md diff --git a/week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go b/challenges/week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go rename to challenges/week10_xor_ftw/solutions/xor_cipher/go/xor_encr.go diff --git a/week10_xor_ftw/solutions/xor_cipher/python/README.md b/challenges/week10_xor_ftw/solutions/xor_cipher/python/README.md similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/python/README.md rename to challenges/week10_xor_ftw/solutions/xor_cipher/python/README.md diff --git a/week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt b/challenges/week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt rename to challenges/week10_xor_ftw/solutions/xor_cipher/python/key_plain_txt diff --git a/week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py b/challenges/week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py similarity index 100% rename from week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py rename to challenges/week10_xor_ftw/solutions/xor_cipher/python/xor_encr.py diff --git a/week11_we_are_in/README.md b/challenges/week11_we_are_in/README.md similarity index 96% rename from week11_we_are_in/README.md rename to challenges/week11_we_are_in/README.md index dd0ef86..db2c46b 100644 --- a/week11_we_are_in/README.md +++ b/challenges/week11_we_are_in/README.md @@ -20,7 +20,7 @@ But not before leaving behind **3 encrypted files** and a trail of questionable Reverse-engineer and **crack the encrypted files** using the clues left behind by the vibe coder: -- ๐Ÿง  Inference from [last weekโ€™s challenge](https://github.com/richvigorito/dev-challenges/tree/main/week10_xor_ftw) +- ๐Ÿง  Inference from [last weekโ€™s challenge](../week10_xor_ftw) - โ˜• And some cryptic desk remnants: a ฯ€ mug, a worn copy of Hitchhikerโ€™s Guide, and a note: โ€œEt tu, Brute?โ€ - ๐Ÿงพ The vibe coder's commit history: diff --git a/week11_we_are_in/enc1.bin b/challenges/week11_we_are_in/enc1.bin similarity index 100% rename from week11_we_are_in/enc1.bin rename to challenges/week11_we_are_in/enc1.bin diff --git a/week11_we_are_in/enc2.bin b/challenges/week11_we_are_in/enc2.bin similarity index 100% rename from week11_we_are_in/enc2.bin rename to challenges/week11_we_are_in/enc2.bin diff --git a/week11_we_are_in/enc2.py b/challenges/week11_we_are_in/enc2.py similarity index 100% rename from week11_we_are_in/enc2.py rename to challenges/week11_we_are_in/enc2.py diff --git a/week11_we_are_in/solutions/ceasar.py b/challenges/week11_we_are_in/solutions/ceasar.py similarity index 100% rename from week11_we_are_in/solutions/ceasar.py rename to challenges/week11_we_are_in/solutions/ceasar.py diff --git a/week11_we_are_in/solutions/crack_ceasar.sh b/challenges/week11_we_are_in/solutions/crack_ceasar.sh similarity index 100% rename from week11_we_are_in/solutions/crack_ceasar.sh rename to challenges/week11_we_are_in/solutions/crack_ceasar.sh diff --git a/week11_we_are_in/solutions/crack_xor.sh b/challenges/week11_we_are_in/solutions/crack_xor.sh similarity index 100% rename from week11_we_are_in/solutions/crack_xor.sh rename to challenges/week11_we_are_in/solutions/crack_xor.sh diff --git a/week11_we_are_in/solutions/xorcipher.py b/challenges/week11_we_are_in/solutions/xorcipher.py similarity index 100% rename from week11_we_are_in/solutions/xorcipher.py rename to challenges/week11_we_are_in/solutions/xorcipher.py diff --git a/week12_access_granted/README.md b/challenges/week12_access_granted/README.md similarity index 100% rename from week12_access_granted/README.md rename to challenges/week12_access_granted/README.md diff --git a/week13_greatest_programming_book_ever_written/README.md b/challenges/week13_greatest_programming_book_ever_written/README.md similarity index 100% rename from week13_greatest_programming_book_ever_written/README.md rename to challenges/week13_greatest_programming_book_ever_written/README.md diff --git a/week14_now_gimme_my_money/README.md b/challenges/week14_now_gimme_my_money/README.md similarity index 100% rename from week14_now_gimme_my_money/README.md rename to challenges/week14_now_gimme_my_money/README.md diff --git a/week14_now_gimme_my_money/solutions/engine.c b/challenges/week14_now_gimme_my_money/solutions/engine.c similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.c rename to challenges/week14_now_gimme_my_money/solutions/engine.c diff --git a/week14_now_gimme_my_money/solutions/engine.go b/challenges/week14_now_gimme_my_money/solutions/engine.go similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.go rename to challenges/week14_now_gimme_my_money/solutions/engine.go diff --git a/week14_now_gimme_my_money/solutions/engine.js b/challenges/week14_now_gimme_my_money/solutions/engine.js similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.js rename to challenges/week14_now_gimme_my_money/solutions/engine.js diff --git a/week14_now_gimme_my_money/solutions/engine.py b/challenges/week14_now_gimme_my_money/solutions/engine.py similarity index 100% rename from week14_now_gimme_my_money/solutions/engine.py rename to challenges/week14_now_gimme_my_money/solutions/engine.py diff --git a/week15_terminal_exorcism/Dockerfile b/challenges/week15_terminal_exorcism/Dockerfile similarity index 100% rename from week15_terminal_exorcism/Dockerfile rename to challenges/week15_terminal_exorcism/Dockerfile diff --git a/week15_terminal_exorcism/README.md b/challenges/week15_terminal_exorcism/README.md similarity index 100% rename from week15_terminal_exorcism/README.md rename to challenges/week15_terminal_exorcism/README.md diff --git a/week15_terminal_exorcism/make_weird_files.sh b/challenges/week15_terminal_exorcism/make_weird_files.sh similarity index 100% rename from week15_terminal_exorcism/make_weird_files.sh rename to challenges/week15_terminal_exorcism/make_weird_files.sh diff --git a/week16_pen_and_paper/README.md b/challenges/week16_pen_and_paper/README.md similarity index 100% rename from week16_pen_and_paper/README.md rename to challenges/week16_pen_and_paper/README.md diff --git a/week17_page_peelers/README.md b/challenges/week17_page_peelers/README.md similarity index 100% rename from week17_page_peelers/README.md rename to challenges/week17_page_peelers/README.md diff --git a/week17_page_peelers/solution/README.md b/challenges/week17_page_peelers/solution/README.md similarity index 100% rename from week17_page_peelers/solution/README.md rename to challenges/week17_page_peelers/solution/README.md diff --git a/week17_page_peelers/solution/scrape.py b/challenges/week17_page_peelers/solution/scrape.py similarity index 100% rename from week17_page_peelers/solution/scrape.py rename to challenges/week17_page_peelers/solution/scrape.py diff --git a/week18_pascals_pascal_triangle/README.md b/challenges/week18_pascals_pascal_triangle/README.md similarity index 100% rename from week18_pascals_pascal_triangle/README.md rename to challenges/week18_pascals_pascal_triangle/README.md diff --git a/week19_shunting_yard_algo/README.md b/challenges/week19_shunting_yard_algo/README.md similarity index 100% rename from week19_shunting_yard_algo/README.md rename to challenges/week19_shunting_yard_algo/README.md diff --git a/week19_shunting_yard_algo/solutions/yard.cpp b/challenges/week19_shunting_yard_algo/solutions/yard.cpp similarity index 100% rename from week19_shunting_yard_algo/solutions/yard.cpp rename to challenges/week19_shunting_yard_algo/solutions/yard.cpp diff --git a/week1_gossip_spreads/README.md b/challenges/week1_gossip_spreads/README.md similarity index 100% rename from week1_gossip_spreads/README.md rename to challenges/week1_gossip_spreads/README.md diff --git a/week1_gossip_spreads/solutions/c/README.md b/challenges/week1_gossip_spreads/solutions/c/README.md similarity index 100% rename from week1_gossip_spreads/solutions/c/README.md rename to challenges/week1_gossip_spreads/solutions/c/README.md diff --git a/week1_gossip_spreads/solutions/c/broker.c b/challenges/week1_gossip_spreads/solutions/c/broker.c similarity index 100% rename from week1_gossip_spreads/solutions/c/broker.c rename to challenges/week1_gossip_spreads/solutions/c/broker.c diff --git a/week1_gossip_spreads/solutions/c/pub.c b/challenges/week1_gossip_spreads/solutions/c/pub.c similarity index 100% rename from week1_gossip_spreads/solutions/c/pub.c rename to challenges/week1_gossip_spreads/solutions/c/pub.c diff --git a/week1_gossip_spreads/solutions/c/sub.c b/challenges/week1_gossip_spreads/solutions/c/sub.c similarity index 100% rename from week1_gossip_spreads/solutions/c/sub.c rename to challenges/week1_gossip_spreads/solutions/c/sub.c diff --git a/week1_gossip_spreads/solutions/go/README.md b/challenges/week1_gossip_spreads/solutions/go/README.md similarity index 100% rename from week1_gossip_spreads/solutions/go/README.md rename to challenges/week1_gossip_spreads/solutions/go/README.md diff --git a/week1_gossip_spreads/solutions/go/pub.go b/challenges/week1_gossip_spreads/solutions/go/pub.go similarity index 100% rename from week1_gossip_spreads/solutions/go/pub.go rename to challenges/week1_gossip_spreads/solutions/go/pub.go diff --git a/week1_gossip_spreads/solutions/go/sub.go b/challenges/week1_gossip_spreads/solutions/go/sub.go similarity index 100% rename from week1_gossip_spreads/solutions/go/sub.go rename to challenges/week1_gossip_spreads/solutions/go/sub.go diff --git a/week1_gossip_spreads/solutions/python/README.md b/challenges/week1_gossip_spreads/solutions/python/README.md similarity index 96% rename from week1_gossip_spreads/solutions/python/README.md rename to challenges/week1_gossip_spreads/solutions/python/README.md index cc2b1fe..44b52e8 100644 --- a/week1_gossip_spreads/solutions/python/README.md +++ b/challenges/week1_gossip_spreads/solutions/python/README.md @@ -50,7 +50,7 @@ Opens a WebSocket connection to receive real-time messages published to that top You can test this with tools like: - [Websocketking.com](http://websocketking.com) - [hoppscotch.io](http://hoppscotch.io) -- [sample react ui](/week3_pubsub/solutions/react_frontend) +- [sample react ui](../react_frontend) Example URL: ```bash diff --git a/week1_gossip_spreads/solutions/python/api.py b/challenges/week1_gossip_spreads/solutions/python/api.py similarity index 100% rename from week1_gossip_spreads/solutions/python/api.py rename to challenges/week1_gossip_spreads/solutions/python/api.py diff --git a/week1_gossip_spreads/solutions/python/broker.py b/challenges/week1_gossip_spreads/solutions/python/broker.py similarity index 100% rename from week1_gossip_spreads/solutions/python/broker.py rename to challenges/week1_gossip_spreads/solutions/python/broker.py diff --git a/week1_gossip_spreads/solutions/python/requirements.txt b/challenges/week1_gossip_spreads/solutions/python/requirements.txt similarity index 100% rename from week1_gossip_spreads/solutions/python/requirements.txt rename to challenges/week1_gossip_spreads/solutions/python/requirements.txt diff --git a/week1_gossip_spreads/solutions/react_frontend/README.md b/challenges/week1_gossip_spreads/solutions/react_frontend/README.md similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/README.md rename to challenges/week1_gossip_spreads/solutions/react_frontend/README.md diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/.gitignore diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/README.md diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package-lock.json diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/package.json diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/favicon.ico diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/index.html diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo192.png diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/logo512.png diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/manifest.json diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/public/robots.txt diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.css diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/App.test.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Publisher.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/Subscriber.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.css diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/index.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/logo.svg diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/reportWebVitals.js diff --git a/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js b/challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js similarity index 100% rename from week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js rename to challenges/week1_gossip_spreads/solutions/react_frontend/pubsub-ui/src/setupTests.js diff --git a/week20_fn_solid/README.md b/challenges/week20_fn_solid/README.md similarity index 100% rename from week20_fn_solid/README.md rename to challenges/week20_fn_solid/README.md diff --git a/week20_fn_solid/env/Dockerfile b/challenges/week20_fn_solid/env/Dockerfile similarity index 100% rename from week20_fn_solid/env/Dockerfile rename to challenges/week20_fn_solid/env/Dockerfile diff --git a/week20_fn_solid/env/Makefile b/challenges/week20_fn_solid/env/Makefile similarity index 100% rename from week20_fn_solid/env/Makefile rename to challenges/week20_fn_solid/env/Makefile diff --git a/week20_fn_solid/env/challenge_files/dip_vending.ts b/challenges/week20_fn_solid/env/challenge_files/dip_vending.ts similarity index 100% rename from week20_fn_solid/env/challenge_files/dip_vending.ts rename to challenges/week20_fn_solid/env/challenge_files/dip_vending.ts diff --git a/week20_fn_solid/env/challenge_files/isp_robot.java b/challenges/week20_fn_solid/env/challenge_files/isp_robot.java similarity index 100% rename from week20_fn_solid/env/challenge_files/isp_robot.java rename to challenges/week20_fn_solid/env/challenge_files/isp_robot.java diff --git a/week20_fn_solid/env/challenge_files/lsp_vehicle.cs b/challenges/week20_fn_solid/env/challenge_files/lsp_vehicle.cs similarity index 100% rename from week20_fn_solid/env/challenge_files/lsp_vehicle.cs rename to challenges/week20_fn_solid/env/challenge_files/lsp_vehicle.cs diff --git a/week20_fn_solid/env/challenge_files/ocp_pricing.go b/challenges/week20_fn_solid/env/challenge_files/ocp_pricing.go similarity index 100% rename from week20_fn_solid/env/challenge_files/ocp_pricing.go rename to challenges/week20_fn_solid/env/challenge_files/ocp_pricing.go diff --git a/week20_fn_solid/env/challenge_files/srp_printer.py b/challenges/week20_fn_solid/env/challenge_files/srp_printer.py similarity index 100% rename from week20_fn_solid/env/challenge_files/srp_printer.py rename to challenges/week20_fn_solid/env/challenge_files/srp_printer.py diff --git a/week20_fn_solid/env/solutions/dip_vending.ts b/challenges/week20_fn_solid/env/solutions/dip_vending.ts similarity index 100% rename from week20_fn_solid/env/solutions/dip_vending.ts rename to challenges/week20_fn_solid/env/solutions/dip_vending.ts diff --git a/week20_fn_solid/env/solutions/isp_robot.java b/challenges/week20_fn_solid/env/solutions/isp_robot.java similarity index 100% rename from week20_fn_solid/env/solutions/isp_robot.java rename to challenges/week20_fn_solid/env/solutions/isp_robot.java diff --git a/week20_fn_solid/env/solutions/lsp_vehicle.cs b/challenges/week20_fn_solid/env/solutions/lsp_vehicle.cs similarity index 100% rename from week20_fn_solid/env/solutions/lsp_vehicle.cs rename to challenges/week20_fn_solid/env/solutions/lsp_vehicle.cs diff --git a/week20_fn_solid/env/solutions/ocp_pricing.go b/challenges/week20_fn_solid/env/solutions/ocp_pricing.go similarity index 100% rename from week20_fn_solid/env/solutions/ocp_pricing.go rename to challenges/week20_fn_solid/env/solutions/ocp_pricing.go diff --git a/week20_fn_solid/env/solutions/srp_printer.py b/challenges/week20_fn_solid/env/solutions/srp_printer.py similarity index 100% rename from week20_fn_solid/env/solutions/srp_printer.py rename to challenges/week20_fn_solid/env/solutions/srp_printer.py diff --git a/week21_dennis_ritchie/README.md b/challenges/week21_dennis_ritchie/README.md similarity index 100% rename from week21_dennis_ritchie/README.md rename to challenges/week21_dennis_ritchie/README.md diff --git a/week21_dennis_ritchie/solutions/hello_world.c b/challenges/week21_dennis_ritchie/solutions/hello_world.c similarity index 100% rename from week21_dennis_ritchie/solutions/hello_world.c rename to challenges/week21_dennis_ritchie/solutions/hello_world.c diff --git a/week21_dennis_ritchie/solutions/input_to_output.c b/challenges/week21_dennis_ritchie/solutions/input_to_output.c similarity index 100% rename from week21_dennis_ritchie/solutions/input_to_output.c rename to challenges/week21_dennis_ritchie/solutions/input_to_output.c diff --git a/week21_dennis_ritchie/solutions/pointer_string.c b/challenges/week21_dennis_ritchie/solutions/pointer_string.c similarity index 100% rename from week21_dennis_ritchie/solutions/pointer_string.c rename to challenges/week21_dennis_ritchie/solutions/pointer_string.c diff --git a/week22_the_ole_pubsub_pub/README.md b/challenges/week22_the_ole_pubsub_pub/README.md similarity index 100% rename from week22_the_ole_pubsub_pub/README.md rename to challenges/week22_the_ole_pubsub_pub/README.md diff --git a/week22_the_ole_pubsub_pub/solutions/broker.c b/challenges/week22_the_ole_pubsub_pub/solutions/broker.c similarity index 100% rename from week22_the_ole_pubsub_pub/solutions/broker.c rename to challenges/week22_the_ole_pubsub_pub/solutions/broker.c diff --git a/week22_the_ole_pubsub_pub/solutions/pub.c b/challenges/week22_the_ole_pubsub_pub/solutions/pub.c similarity index 100% rename from week22_the_ole_pubsub_pub/solutions/pub.c rename to challenges/week22_the_ole_pubsub_pub/solutions/pub.c diff --git a/week22_the_ole_pubsub_pub/solutions/sub.c b/challenges/week22_the_ole_pubsub_pub/solutions/sub.c similarity index 100% rename from week22_the_ole_pubsub_pub/solutions/sub.c rename to challenges/week22_the_ole_pubsub_pub/solutions/sub.c diff --git a/week2_the_conga_line/README.md b/challenges/week2_the_conga_line/README.md similarity index 100% rename from week2_the_conga_line/README.md rename to challenges/week2_the_conga_line/README.md diff --git a/week2_the_conga_line/solutions/go/linkedlist.go b/challenges/week2_the_conga_line/solutions/go/linkedlist.go similarity index 100% rename from week2_the_conga_line/solutions/go/linkedlist.go rename to challenges/week2_the_conga_line/solutions/go/linkedlist.go diff --git a/week2_the_conga_line/solutions/python/linkedlist.py b/challenges/week2_the_conga_line/solutions/python/linkedlist.py similarity index 100% rename from week2_the_conga_line/solutions/python/linkedlist.py rename to challenges/week2_the_conga_line/solutions/python/linkedlist.py diff --git a/week3_this_math_aint_mathin/README.md b/challenges/week3_this_math_aint_mathin/README.md similarity index 100% rename from week3_this_math_aint_mathin/README.md rename to challenges/week3_this_math_aint_mathin/README.md diff --git a/week3_this_math_aint_mathin/solutions/c/arith.c b/challenges/week3_this_math_aint_mathin/solutions/c/arith.c similarity index 100% rename from week3_this_math_aint_mathin/solutions/c/arith.c rename to challenges/week3_this_math_aint_mathin/solutions/c/arith.c diff --git a/week3_this_math_aint_mathin/solutions/erlang/arith.erl b/challenges/week3_this_math_aint_mathin/solutions/erlang/arith.erl similarity index 100% rename from week3_this_math_aint_mathin/solutions/erlang/arith.erl rename to challenges/week3_this_math_aint_mathin/solutions/erlang/arith.erl diff --git a/week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl b/challenges/week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl similarity index 100% rename from week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl rename to challenges/week3_this_math_aint_mathin/solutions/erlang/arith_tests.erl diff --git a/week4_wiltchamberlains_100_point_game/README.md b/challenges/week4_wiltchamberlains_100_point_game/README.md similarity index 100% rename from week4_wiltchamberlains_100_point_game/README.md rename to challenges/week4_wiltchamberlains_100_point_game/README.md diff --git a/week4_wiltchamberlains_100_point_game/files/dame.json b/challenges/week4_wiltchamberlains_100_point_game/files/dame.json similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/dame.json rename to challenges/week4_wiltchamberlains_100_point_game/files/dame.json diff --git a/week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt b/challenges/week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt rename to challenges/week4_wiltchamberlains_100_point_game/files/lillard-game-pbp.txt diff --git a/week4_wiltchamberlains_100_point_game/files/parse_game.sh b/challenges/week4_wiltchamberlains_100_point_game/files/parse_game.sh similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/parse_game.sh rename to challenges/week4_wiltchamberlains_100_point_game/files/parse_game.sh diff --git a/week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt b/challenges/week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt rename to challenges/week4_wiltchamberlains_100_point_game/files/rudy-game-pbp.txt diff --git a/week4_wiltchamberlains_100_point_game/files/rudy.json b/challenges/week4_wiltchamberlains_100_point_game/files/rudy.json similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/rudy.json rename to challenges/week4_wiltchamberlains_100_point_game/files/rudy.json diff --git a/week4_wiltchamberlains_100_point_game/files/trailblazers.png b/challenges/week4_wiltchamberlains_100_point_game/files/trailblazers.png similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/trailblazers.png rename to challenges/week4_wiltchamberlains_100_point_game/files/trailblazers.png diff --git a/week4_wiltchamberlains_100_point_game/files/wilt.json b/challenges/week4_wiltchamberlains_100_point_game/files/wilt.json similarity index 100% rename from week4_wiltchamberlains_100_point_game/files/wilt.json rename to challenges/week4_wiltchamberlains_100_point_game/files/wilt.json diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/README.md b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/README.md similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/README.md rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/README.md diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulate.sh diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.gif diff --git a/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm b/challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm rename to challenges/week4_wiltchamberlains_100_point_game/solutions/bash/simulation.webm diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/README.md diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/graph.png diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/matplotlib_ex.py diff --git a/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt b/challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt similarity index 100% rename from week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt rename to challenges/week4_wiltchamberlains_100_point_game/solutions/python/matplotlib_ex/requirements.txt diff --git a/week5_swappin_aint_easy/README.md b/challenges/week5_swappin_aint_easy/README.md similarity index 100% rename from week5_swappin_aint_easy/README.md rename to challenges/week5_swappin_aint_easy/README.md diff --git a/week5_swappin_aint_easy/solutions/Dockerfile b/challenges/week5_swappin_aint_easy/solutions/Dockerfile similarity index 100% rename from week5_swappin_aint_easy/solutions/Dockerfile rename to challenges/week5_swappin_aint_easy/solutions/Dockerfile diff --git a/week5_swappin_aint_easy/solutions/run_all.sh b/challenges/week5_swappin_aint_easy/solutions/run_all.sh similarity index 100% rename from week5_swappin_aint_easy/solutions/run_all.sh rename to challenges/week5_swappin_aint_easy/solutions/run_all.sh diff --git a/week5_swappin_aint_easy/solutions/swap/Swap.java b/challenges/week5_swappin_aint_easy/solutions/swap/Swap.java similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/Swap.java rename to challenges/week5_swappin_aint_easy/solutions/swap/Swap.java diff --git a/week5_swappin_aint_easy/solutions/swap/swap.c b/challenges/week5_swappin_aint_easy/solutions/swap/swap.c similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.c rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.c diff --git a/week5_swappin_aint_easy/solutions/swap/swap.clj b/challenges/week5_swappin_aint_easy/solutions/swap/swap.clj similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.clj rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.clj diff --git a/week5_swappin_aint_easy/solutions/swap/swap.cpp b/challenges/week5_swappin_aint_easy/solutions/swap/swap.cpp similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.cpp rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.cpp diff --git a/week5_swappin_aint_easy/solutions/swap/swap.erl b/challenges/week5_swappin_aint_easy/solutions/swap/swap.erl similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.erl rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.erl diff --git a/week5_swappin_aint_easy/solutions/swap/swap.f90 b/challenges/week5_swappin_aint_easy/solutions/swap/swap.f90 similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.f90 rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.f90 diff --git a/week5_swappin_aint_easy/solutions/swap/swap.go b/challenges/week5_swappin_aint_easy/solutions/swap/swap.go similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.go rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.go diff --git a/week5_swappin_aint_easy/solutions/swap/swap.hs b/challenges/week5_swappin_aint_easy/solutions/swap/swap.hs similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.hs rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.hs diff --git a/week5_swappin_aint_easy/solutions/swap/swap.lisp b/challenges/week5_swappin_aint_easy/solutions/swap/swap.lisp similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.lisp rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.lisp diff --git a/week5_swappin_aint_easy/solutions/swap/swap.php b/challenges/week5_swappin_aint_easy/solutions/swap/swap.php similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.php rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.php diff --git a/week5_swappin_aint_easy/solutions/swap/swap.py b/challenges/week5_swappin_aint_easy/solutions/swap/swap.py similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.py rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.py diff --git a/week5_swappin_aint_easy/solutions/swap/swap.rb b/challenges/week5_swappin_aint_easy/solutions/swap/swap.rb similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.rb rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.rb diff --git a/week5_swappin_aint_easy/solutions/swap/swap.rs b/challenges/week5_swappin_aint_easy/solutions/swap/swap.rs similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.rs rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.rs diff --git a/week5_swappin_aint_easy/solutions/swap/swap.scala b/challenges/week5_swappin_aint_easy/solutions/swap/swap.scala similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.scala rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.scala diff --git a/week5_swappin_aint_easy/solutions/swap/swap.sh b/challenges/week5_swappin_aint_easy/solutions/swap/swap.sh similarity index 100% rename from week5_swappin_aint_easy/solutions/swap/swap.sh rename to challenges/week5_swappin_aint_easy/solutions/swap/swap.sh diff --git a/week6_stay_solid_friends/README.md b/challenges/week6_stay_solid_friends/README.md similarity index 100% rename from week6_stay_solid_friends/README.md rename to challenges/week6_stay_solid_friends/README.md diff --git a/week6_stay_solid_friends/bad_code/cpp_bad_code.cpp b/challenges/week6_stay_solid_friends/bad_code/cpp_bad_code.cpp similarity index 100% rename from week6_stay_solid_friends/bad_code/cpp_bad_code.cpp rename to challenges/week6_stay_solid_friends/bad_code/cpp_bad_code.cpp diff --git a/week6_stay_solid_friends/bad_code/go_bad_code.go b/challenges/week6_stay_solid_friends/bad_code/go_bad_code.go similarity index 100% rename from week6_stay_solid_friends/bad_code/go_bad_code.go rename to challenges/week6_stay_solid_friends/bad_code/go_bad_code.go diff --git a/week6_stay_solid_friends/bad_code/php_bad_code.php b/challenges/week6_stay_solid_friends/bad_code/php_bad_code.php similarity index 100% rename from week6_stay_solid_friends/bad_code/php_bad_code.php rename to challenges/week6_stay_solid_friends/bad_code/php_bad_code.php diff --git a/week6_stay_solid_friends/bad_code/python_bad_code.py b/challenges/week6_stay_solid_friends/bad_code/python_bad_code.py similarity index 100% rename from week6_stay_solid_friends/bad_code/python_bad_code.py rename to challenges/week6_stay_solid_friends/bad_code/python_bad_code.py diff --git a/week6_stay_solid_friends/bad_code/ruby_bad_code.rb b/challenges/week6_stay_solid_friends/bad_code/ruby_bad_code.rb similarity index 100% rename from week6_stay_solid_friends/bad_code/ruby_bad_code.rb rename to challenges/week6_stay_solid_friends/bad_code/ruby_bad_code.rb diff --git a/week6_stay_solid_friends/solutions/refactored.cpp b/challenges/week6_stay_solid_friends/solutions/refactored.cpp similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.cpp rename to challenges/week6_stay_solid_friends/solutions/refactored.cpp diff --git a/week6_stay_solid_friends/solutions/refactored.go b/challenges/week6_stay_solid_friends/solutions/refactored.go similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.go rename to challenges/week6_stay_solid_friends/solutions/refactored.go diff --git a/week6_stay_solid_friends/solutions/refactored.php b/challenges/week6_stay_solid_friends/solutions/refactored.php similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.php rename to challenges/week6_stay_solid_friends/solutions/refactored.php diff --git a/week6_stay_solid_friends/solutions/refactored.py b/challenges/week6_stay_solid_friends/solutions/refactored.py similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.py rename to challenges/week6_stay_solid_friends/solutions/refactored.py diff --git a/week6_stay_solid_friends/solutions/refactored.rb b/challenges/week6_stay_solid_friends/solutions/refactored.rb similarity index 100% rename from week6_stay_solid_friends/solutions/refactored.rb rename to challenges/week6_stay_solid_friends/solutions/refactored.rb diff --git a/week7_a_variable_says_what/README.md b/challenges/week7_a_variable_says_what/README.md similarity index 100% rename from week7_a_variable_says_what/README.md rename to challenges/week7_a_variable_says_what/README.md diff --git a/week7_a_variable_says_what/var_vars.php b/challenges/week7_a_variable_says_what/var_vars.php similarity index 100% rename from week7_a_variable_says_what/var_vars.php rename to challenges/week7_a_variable_says_what/var_vars.php diff --git a/week8_red_solo_cups/README.md b/challenges/week8_red_solo_cups/README.md similarity index 100% rename from week8_red_solo_cups/README.md rename to challenges/week8_red_solo_cups/README.md diff --git a/week9_inception/README.md b/challenges/week9_inception/README.md similarity index 100% rename from week9_inception/README.md rename to challenges/week9_inception/README.md diff --git a/week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj b/challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj similarity index 100% rename from week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj rename to challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/CSharpApp.csproj diff --git a/week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs b/challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs similarity index 100% rename from week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs rename to challenges/week9_inception/solutions/C#_calls_F#/CSharpApp/Program.cs diff --git a/week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs b/challenges/week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs similarity index 100% rename from week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs rename to challenges/week9_inception/solutions/C#_calls_F#/HelloLib/Hello.fs diff --git a/week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj b/challenges/week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj similarity index 100% rename from week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj rename to challenges/week9_inception/solutions/C#_calls_F#/HelloLib/HelloLib.fsproj diff --git a/week9_inception/solutions/C#_calls_F#/README.md b/challenges/week9_inception/solutions/C#_calls_F#/README.md similarity index 100% rename from week9_inception/solutions/C#_calls_F#/README.md rename to challenges/week9_inception/solutions/C#_calls_F#/README.md diff --git a/week9_inception/solutions/c_calls_assembly/hello.asm b/challenges/week9_inception/solutions/c_calls_assembly/hello.asm similarity index 100% rename from week9_inception/solutions/c_calls_assembly/hello.asm rename to challenges/week9_inception/solutions/c_calls_assembly/hello.asm diff --git a/week9_inception/solutions/c_calls_assembly/hello.c b/challenges/week9_inception/solutions/c_calls_assembly/hello.c similarity index 100% rename from week9_inception/solutions/c_calls_assembly/hello.c rename to challenges/week9_inception/solutions/c_calls_assembly/hello.c diff --git a/week9_inception/solutions/inception/README.md b/challenges/week9_inception/solutions/inception/README.md similarity index 100% rename from week9_inception/solutions/inception/README.md rename to challenges/week9_inception/solutions/inception/README.md diff --git a/week9_inception/solutions/inception/c/hello.asm b/challenges/week9_inception/solutions/inception/c/hello.asm similarity index 100% rename from week9_inception/solutions/inception/c/hello.asm rename to challenges/week9_inception/solutions/inception/c/hello.asm diff --git a/week9_inception/solutions/inception/c/main.c b/challenges/week9_inception/solutions/inception/c/main.c similarity index 100% rename from week9_inception/solutions/inception/c/main.c rename to challenges/week9_inception/solutions/inception/c/main.c diff --git a/week9_inception/solutions/inception/c/nq.c b/challenges/week9_inception/solutions/inception/c/nq.c similarity index 100% rename from week9_inception/solutions/inception/c/nq.c rename to challenges/week9_inception/solutions/inception/c/nq.c diff --git a/week9_inception/solutions/inception/c/nqueens.h b/challenges/week9_inception/solutions/inception/c/nqueens.h similarity index 100% rename from week9_inception/solutions/inception/c/nqueens.h rename to challenges/week9_inception/solutions/inception/c/nqueens.h diff --git a/week9_inception/solutions/inception/go/main.go b/challenges/week9_inception/solutions/inception/go/main.go similarity index 100% rename from week9_inception/solutions/inception/go/main.go rename to challenges/week9_inception/solutions/inception/go/main.go diff --git a/week9_inception/solutions/inception/go/nq.native.go b/challenges/week9_inception/solutions/inception/go/nq.native.go similarity index 100% rename from week9_inception/solutions/inception/go/nq.native.go rename to challenges/week9_inception/solutions/inception/go/nq.native.go diff --git a/week9_inception/solutions/inception/go/pythonlib.nq.go b/challenges/week9_inception/solutions/inception/go/pythonlib.nq.go similarity index 100% rename from week9_inception/solutions/inception/go/pythonlib.nq.go rename to challenges/week9_inception/solutions/inception/go/pythonlib.nq.go diff --git a/week9_inception/solutions/inception/python/nq.native.py b/challenges/week9_inception/solutions/inception/python/nq.native.py similarity index 100% rename from week9_inception/solutions/inception/python/nq.native.py rename to challenges/week9_inception/solutions/inception/python/nq.native.py diff --git a/week9_inception/solutions/inception/python/nq.py b/challenges/week9_inception/solutions/inception/python/nq.py similarity index 100% rename from week9_inception/solutions/inception/python/nq.py rename to challenges/week9_inception/solutions/inception/python/nq.py diff --git a/week9_inception/solutions/java_calls_kotlin/Hello.kt b/challenges/week9_inception/solutions/java_calls_kotlin/Hello.kt similarity index 100% rename from week9_inception/solutions/java_calls_kotlin/Hello.kt rename to challenges/week9_inception/solutions/java_calls_kotlin/Hello.kt diff --git a/week9_inception/solutions/java_calls_kotlin/Main.java b/challenges/week9_inception/solutions/java_calls_kotlin/Main.java similarity index 100% rename from week9_inception/solutions/java_calls_kotlin/Main.java rename to challenges/week9_inception/solutions/java_calls_kotlin/Main.java diff --git a/week9_inception/solutions/wtf_is_the_internet/README.md b/challenges/week9_inception/solutions/wtf_is_the_internet/README.md similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/README.md rename to challenges/week9_inception/solutions/wtf_is_the_internet/README.md diff --git a/week9_inception/solutions/wtf_is_the_internet/c_add.c b/challenges/week9_inception/solutions/wtf_is_the_internet/c_add.c similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/c_add.c rename to challenges/week9_inception/solutions/wtf_is_the_internet/c_add.c diff --git a/week9_inception/solutions/wtf_is_the_internet/c_add.wasm b/challenges/week9_inception/solutions/wtf_is_the_internet/c_add.wasm similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/c_add.wasm rename to challenges/week9_inception/solutions/wtf_is_the_internet/c_add.wasm diff --git a/week9_inception/solutions/wtf_is_the_internet/wtf.html b/challenges/week9_inception/solutions/wtf_is_the_internet/wtf.html similarity index 100% rename from week9_inception/solutions/wtf_is_the_internet/wtf.html rename to challenges/week9_inception/solutions/wtf_is_the_internet/wtf.html From b1fb26b5e53c6ab2f556ad7a8945356a945da947 Mon Sep 17 00:00:00 2001 From: Rich Vigorito Date: Tue, 23 Sep 2025 12:16:22 -0700 Subject: [PATCH 2/4] link checker --- .github/workflows/link-check.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/link-check.yml diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml new file mode 100644 index 0000000..b675c00 --- /dev/null +++ b/.github/workflows/link-check.yml @@ -0,0 +1,20 @@ +name: Check Markdown Links + +on: + push: + branches: [ main ] + pull_request: + +jobs: + link-check: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Run lychee link checker + uses: lycheeverse/lychee-action@v2 + with: + args: --verbose --no-progress './**/*.md' + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} From 74f090663499a3881a97db9c1eff18f622c6bb7d Mon Sep 17 00:00:00 2001 From: Rich Vigorito Date: Tue, 23 Sep 2025 12:23:37 -0700 Subject: [PATCH 3/4] clean links --- .../week13_greatest_programming_book_ever_written/README.md | 2 +- challenges/week14_now_gimme_my_money/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/challenges/week13_greatest_programming_book_ever_written/README.md b/challenges/week13_greatest_programming_book_ever_written/README.md index b62de07..2e0068b 100644 --- a/challenges/week13_greatest_programming_book_ever_written/README.md +++ b/challenges/week13_greatest_programming_book_ever_written/README.md @@ -2,7 +2,7 @@ ## ๐Ÿ“ Challenge Overview -In 2013, while taking an Algorithms course at Portland State University the professor [Dr. Herbert Mayer](https://de.wikipedia.org/wiki/Herbert_G._Mayer), a deeply respected authority in computer science, lifted this book and in his thick German accent said *"dis est de best programming book ever vritten."*; which I thought was incredible because 1) he just brought in the book in to show it off, it wasnt course material and 2) considering the [books that he wrote himself](https://www.amazon.com/Computers-Technology-Herbert-Mayer-Books/s?rh=n%3A5%2Cp_27%3AHerbert%2BMayer) figured it must of been good. I bought the book immediately, saw it was in Pascal, and closed immediately ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚. +In 2013, while taking an Algorithms course at Portland State University the professor [Dr. Herbert Mayer](https://de.wikipedia.org/wiki/Herbert_G._Mayer), a deeply respected authority in computer science, lifted this book and in his thick German accent said *"dis est de best programming book ever vritten."*; which I thought was incredible because 1) he just brought in the book in to show it off, it wasnt course material and 2) considering the [books that he wrote himself](https://www.amazon.com/stores/Herbert-G.-Mayer/author/B001KIAOAM) figured it must of been good. I bought the book immediately, saw it was in Pascal, and closed immediately ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚. Well today we're gonna learn some Pascal together so we can enjoy this ancient masterpiece. diff --git a/challenges/week14_now_gimme_my_money/README.md b/challenges/week14_now_gimme_my_money/README.md index f1c7187..fc8a217 100644 --- a/challenges/week14_now_gimme_my_money/README.md +++ b/challenges/week14_now_gimme_my_money/README.md @@ -9,7 +9,7 @@ Youโ€™ve inherited an invoicing system with a pluggable `SumModule` component. T - Should we sum values **as-is with floats**? - Should we **convert to cents** and avoid FP altogether? -- Would fancy algorithms like [Kahan summation](https://www.geeksforgeeks.org/dsa/kahan-summation-algorithm/), [improved Neumaier version](https://en.wikipedia.org/wiki/Kahan_summation_algorithm#Further_enhancements) or a language specific package/datatype that uses [arbitray precision](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic) like ([go big](https://pkg.go.dev/math/big), [php bcmath](https://www.php.net/manual/en/book.bc.php0), [python decimal module](https://docs.python.org/3/library/decimal.html), etc) to reduce errors 'enough'? +- Would fancy algorithms like [Kahan summation](https://www.geeksforgeeks.org/dsa/kahan-summation-algorithm/), [improved Neumaier version](https://en.wikipedia.org/wiki/Kahan_summation_algorithm#Further_enhancements) or a language specific package/datatype that uses [arbitray precision](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic) like ([go big](https://pkg.go.dev/math/big), [php bcmath](https://www.php.net/manual/en/book.bc.php), [python decimal module](https://docs.python.org/3/library/decimal.html), etc) to reduce errors 'enough'? Your task: implement as many versions and compare! From bbb4568607d4d5c2e64a965a2612f03a2a956329 Mon Sep 17 00:00:00 2001 From: Rich Vigorito Date: Tue, 23 Sep 2025 12:28:09 -0700 Subject: [PATCH 4/4] ignore certain links --- .github/workflows/link-check.yml | 2 +- .lycheeignore | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .lycheeignore diff --git a/.github/workflows/link-check.yml b/.github/workflows/link-check.yml index b675c00..99070f1 100644 --- a/.github/workflows/link-check.yml +++ b/.github/workflows/link-check.yml @@ -15,6 +15,6 @@ jobs: - name: Run lychee link checker uses: lycheeverse/lychee-action@v2 with: - args: --verbose --no-progress './**/*.md' + args: --verbose --no-progress --max-redirects 5 --retry-wait-time 2 --max-retries 3 --exclude-all-private --exclude-file .lycheeignore './**/*.md' env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.lycheeignore b/.lycheeignore new file mode 100644 index 0000000..60674a2 --- /dev/null +++ b/.lycheeignore @@ -0,0 +1,7 @@ +# Ignore local dev servers +localhost +127.0.0.1 + +# Ignore external sites that block CI bots +amazon.com +leetcode.com