diff --git a/Makefile b/Makefile index ff05f9436..0a403a4d4 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ default: server @# tail and awk work together to extract Jekyll regeneration messages @# When a _notebook is detected in the log, call make convert in the background @# Note: We use the "if ($$0 ~ /_notebooks\/.*\.ipynb/) { system(\"make convert &\") }" to call make convert - @(tail -f $(LOG_FILE) | awk '/Server address: http:\/\/0.0.0.0:$(PORT)\/$(REPO_NAME)\// { serverReady=1 } \ + @(tail -f $(LOG_FILE) | awk '/Server address: http:\/\/127.0.0.1:$(PORT)\/$(REPO_NAME)\// { serverReady=1 } \ serverReady && /^ *Regenerating:/ { regenerate=1 } \ regenerate { \ if (/^[[:blank:]]*$$/) { regenerate=0 } \ @@ -56,7 +56,7 @@ default: server # Start the local web server server: stop convert @echo "Starting server..." - @@nohup bundle exec jekyll serve -H 0.0.0.0 -P $(PORT) > $(LOG_FILE) 2>&1 & \ + @@nohup bundle exec jekyll serve -H 127.0.0.1 -P $(PORT) > $(LOG_FILE) 2>&1 & \ PID=$$!; \ echo "Server PID: $$PID" @@until [ -f $(LOG_FILE) ]; do sleep 1; done diff --git a/Pipfile b/Pipfile new file mode 100644 index 000000000..4339884f2 --- /dev/null +++ b/Pipfile @@ -0,0 +1,12 @@ +[[source]] +url = "https://pypi.python.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +worldometer = "*" + +[dev-packages] + +[requires] +python_version = "3.8" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 000000000..66d71eef2 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,421 @@ +{ + "_meta": { + "hash": { + "sha256": "737b03953ab7053fb895ce287166f7de52ffe4f767a80df160d5d538942360cc" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.8" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.python.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "appdirs": { + "hashes": [ + "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", + "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128" + ], + "version": "==1.4.4" + }, + "beautifulsoup4": { + "hashes": [ + "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da", + "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a" + ], + "version": "==4.12.2" + }, + "bs4": { + "hashes": [ + "sha256:36ecea1fd7cc5c0c6e4a1ff075df26d50da647b75376626cc186e2212886dd3a" + ], + "version": "==0.0.1" + }, + "certifi": { + "hashes": [ + "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", + "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" + ], + "version": "==2023.7.22" + }, + "charset-normalizer": { + "hashes": [ + "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", + "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", + "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", + "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", + "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", + "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", + "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", + "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", + "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", + "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", + "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", + "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", + "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", + "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", + "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", + "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", + "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", + "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", + "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", + "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", + "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", + "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", + "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", + "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", + "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", + "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", + "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", + "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", + "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", + "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", + "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", + "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", + "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", + "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", + "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", + "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", + "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", + "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", + "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", + "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", + "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", + "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", + "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", + "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", + "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", + "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", + "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", + "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", + "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", + "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", + "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", + "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", + "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", + "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", + "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", + "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", + "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", + "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", + "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", + "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", + "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", + "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", + "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", + "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", + "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", + "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", + "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", + "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", + "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", + "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", + "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", + "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", + "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", + "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", + "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" + ], + "version": "==3.2.0" + }, + "cssselect": { + "hashes": [ + "sha256:666b19839cfaddb9ce9d36bfe4c969132c647b92fc9088c4e23f786b30f1b3dc", + "sha256:da1885f0c10b60c03ed5eccbb6b68d6eff248d91976fcde348f395d54c9fd35e" + ], + "version": "==1.2.0" + }, + "fake-useragent": { + "hashes": [ + "sha256:ad2b5414d19493d0789572f04200d4f656f84d20b205cc805233212957fe385d", + "sha256:b411f903331f695e3840ccadcf011f745a405764e97c588f2b8fde9e400a5446" + ], + "version": "==1.2.1" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "version": "==3.4" + }, + "importlib-metadata": { + "hashes": [ + "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb", + "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743" + ], + "version": "==6.8.0" + }, + "importlib-resources": { + "hashes": [ + "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf", + "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4" + ], + "markers": "python_version < '3.10'", + "version": "==6.0.1" + }, + "lxml": { + "hashes": [ + "sha256:05186a0f1346ae12553d66df1cfce6f251589fea3ad3da4f3ef4e34b2d58c6a3", + "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d", + "sha256:081d32421db5df44c41b7f08a334a090a545c54ba977e47fd7cc2deece78809a", + "sha256:0a3d3487f07c1d7f150894c238299934a2a074ef590b583103a45002035be120", + "sha256:0bfd0767c5c1de2551a120673b72e5d4b628737cb05414f03c3277bf9bed3305", + "sha256:0c0850c8b02c298d3c7006b23e98249515ac57430e16a166873fc47a5d549287", + "sha256:0e2cb47860da1f7e9a5256254b74ae331687b9672dfa780eed355c4c9c3dbd23", + "sha256:120fa9349a24c7043854c53cae8cec227e1f79195a7493e09e0c12e29f918e52", + "sha256:1247694b26342a7bf47c02e513d32225ededd18045264d40758abeb3c838a51f", + "sha256:141f1d1a9b663c679dc524af3ea1773e618907e96075262726c7612c02b149a4", + "sha256:14e019fd83b831b2e61baed40cab76222139926b1fb5ed0e79225bc0cae14584", + "sha256:1509dd12b773c02acd154582088820893109f6ca27ef7291b003d0e81666109f", + "sha256:17a753023436a18e27dd7769e798ce302963c236bc4114ceee5b25c18c52c693", + "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef", + "sha256:1f447ea5429b54f9582d4b955f5f1985f278ce5cf169f72eea8afd9502973dd5", + "sha256:23eed6d7b1a3336ad92d8e39d4bfe09073c31bfe502f20ca5116b2a334f8ec02", + "sha256:25f32acefac14ef7bd53e4218fe93b804ef6f6b92ffdb4322bb6d49d94cad2bc", + "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7", + "sha256:303bf1edce6ced16bf67a18a1cf8339d0db79577eec5d9a6d4a80f0fb10aa2da", + "sha256:3331bece23c9ee066e0fb3f96c61322b9e0f54d775fccefff4c38ca488de283a", + "sha256:3e9bdd30efde2b9ccfa9cb5768ba04fe71b018a25ea093379c857c9dad262c40", + "sha256:411007c0d88188d9f621b11d252cce90c4a2d1a49db6c068e3c16422f306eab8", + "sha256:42871176e7896d5d45138f6d28751053c711ed4d48d8e30b498da155af39aebd", + "sha256:46f409a2d60f634fe550f7133ed30ad5321ae2e6630f13657fb9479506b00601", + "sha256:48628bd53a426c9eb9bc066a923acaa0878d1e86129fd5359aee99285f4eed9c", + "sha256:48d6ed886b343d11493129e019da91d4039826794a3e3027321c56d9e71505be", + "sha256:4930be26af26ac545c3dffb662521d4e6268352866956672231887d18f0eaab2", + "sha256:4aec80cde9197340bc353d2768e2a75f5f60bacda2bab72ab1dc499589b3878c", + "sha256:4c28a9144688aef80d6ea666c809b4b0e50010a2aca784c97f5e6bf143d9f129", + "sha256:4d2d1edbca80b510443f51afd8496be95529db04a509bc8faee49c7b0fb6d2cc", + "sha256:4dd9a263e845a72eacb60d12401e37c616438ea2e5442885f65082c276dfb2b2", + "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1", + "sha256:4fb960a632a49f2f089d522f70496640fdf1218f1243889da3822e0a9f5f3ba7", + "sha256:50670615eaf97227d5dc60de2dc99fb134a7130d310d783314e7724bf163f75d", + "sha256:50baa9c1c47efcaef189f31e3d00d697c6d4afda5c3cde0302d063492ff9b477", + "sha256:53ace1c1fd5a74ef662f844a0413446c0629d151055340e9893da958a374f70d", + "sha256:5515edd2a6d1a5a70bfcdee23b42ec33425e405c5b351478ab7dc9347228f96e", + "sha256:56dc1f1ebccc656d1b3ed288f11e27172a01503fc016bcabdcbc0978b19352b7", + "sha256:578695735c5a3f51569810dfebd05dd6f888147a34f0f98d4bb27e92b76e05c2", + "sha256:57aba1bbdf450b726d58b2aea5fe47c7875f5afb2c4a23784ed78f19a0462574", + "sha256:57d6ba0ca2b0c462f339640d22882acc711de224d769edf29962b09f77129cbf", + "sha256:5c245b783db29c4e4fbbbfc9c5a78be496c9fea25517f90606aa1f6b2b3d5f7b", + "sha256:5c31c7462abdf8f2ac0577d9f05279727e698f97ecbb02f17939ea99ae8daa98", + "sha256:64f479d719dc9f4c813ad9bb6b28f8390360660b73b2e4beb4cb0ae7104f1c12", + "sha256:65299ea57d82fb91c7f019300d24050c4ddeb7c5a190e076b5f48a2b43d19c42", + "sha256:6689a3d7fd13dc687e9102a27e98ef33730ac4fe37795d5036d18b4d527abd35", + "sha256:690dafd0b187ed38583a648076865d8c229661ed20e48f2335d68e2cf7dc829d", + "sha256:6fc3c450eaa0b56f815c7b62f2b7fba7266c4779adcf1cece9e6deb1de7305ce", + "sha256:704f61ba8c1283c71b16135caf697557f5ecf3e74d9e453233e4771d68a1f42d", + "sha256:71c52db65e4b56b8ddc5bb89fb2e66c558ed9d1a74a45ceb7dcb20c191c3df2f", + "sha256:71d66ee82e7417828af6ecd7db817913cb0cf9d4e61aa0ac1fde0583d84358db", + "sha256:7d298a1bd60c067ea75d9f684f5f3992c9d6766fadbc0bcedd39750bf344c2f4", + "sha256:8b77946fd508cbf0fccd8e400a7f71d4ac0e1595812e66025bac475a8e811694", + "sha256:8d7e43bd40f65f7d97ad8ef5c9b1778943d02f04febef12def25f7583d19baac", + "sha256:8df133a2ea5e74eef5e8fc6f19b9e085f758768a16e9877a60aec455ed2609b2", + "sha256:8ed74706b26ad100433da4b9d807eae371efaa266ffc3e9191ea436087a9d6a7", + "sha256:92af161ecbdb2883c4593d5ed4815ea71b31fafd7fd05789b23100d081ecac96", + "sha256:97047f0d25cd4bcae81f9ec9dc290ca3e15927c192df17331b53bebe0e3ff96d", + "sha256:9719fe17307a9e814580af1f5c6e05ca593b12fb7e44fe62450a5384dbf61b4b", + "sha256:9767e79108424fb6c3edf8f81e6730666a50feb01a328f4a016464a5893f835a", + "sha256:9a92d3faef50658dd2c5470af249985782bf754c4e18e15afb67d3ab06233f13", + "sha256:9bb6ad405121241e99a86efff22d3ef469024ce22875a7ae045896ad23ba2340", + "sha256:9e28c51fa0ce5674be9f560c6761c1b441631901993f76700b1b30ca6c8378d6", + "sha256:aca086dc5f9ef98c512bac8efea4483eb84abbf926eaeedf7b91479feb092458", + "sha256:ae8b9c6deb1e634ba4f1930eb67ef6e6bf6a44b6eb5ad605642b2d6d5ed9ce3c", + "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c", + "sha256:b4e4bc18382088514ebde9328da057775055940a1f2e18f6ad2d78aa0f3ec5b9", + "sha256:b6420a005548ad52154c8ceab4a1290ff78d757f9e5cbc68f8c77089acd3c432", + "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991", + "sha256:bb3bb49c7a6ad9d981d734ef7c7193bc349ac338776a0360cc671eaee89bcf69", + "sha256:bef4e656f7d98aaa3486d2627e7d2df1157d7e88e7efd43a65aa5dd4714916cf", + "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb", + "sha256:c2006f5c8d28dee289f7020f721354362fa304acbaaf9745751ac4006650254b", + "sha256:c41bfca0bd3532d53d16fd34d20806d5c2b1ace22a2f2e4c0008570bf2c58833", + "sha256:cd47b4a0d41d2afa3e58e5bf1f62069255aa2fd6ff5ee41604418ca925911d76", + "sha256:cdb650fc86227eba20de1a29d4b2c1bfe139dc75a0669270033cb2ea3d391b85", + "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e", + "sha256:d27be7405547d1f958b60837dc4c1007da90b8b23f54ba1f8b728c78fdb19d50", + "sha256:d37017287a7adb6ab77e1c5bee9bcf9660f90ff445042b790402a654d2ad81d8", + "sha256:d3ff32724f98fbbbfa9f49d82852b159e9784d6094983d9a8b7f2ddaebb063d4", + "sha256:d73d8ecf8ecf10a3bd007f2192725a34bd62898e8da27eb9d32a58084f93962b", + "sha256:dd708cf4ee4408cf46a48b108fb9427bfa00b9b85812a9262b5c668af2533ea5", + "sha256:e3cd95e10c2610c360154afdc2f1480aea394f4a4f1ea0a5eacce49640c9b190", + "sha256:e4da8ca0c0c0aea88fd46be8e44bd49716772358d648cce45fe387f7b92374a7", + "sha256:eadfbbbfb41b44034a4c757fd5d70baccd43296fb894dba0295606a7cf3124aa", + "sha256:ed667f49b11360951e201453fc3967344d0d0263aa415e1619e85ae7fd17b4e0", + "sha256:f3df3db1d336b9356dd3112eae5f5c2b8b377f3bc826848567f10bfddfee77e9", + "sha256:f6bdac493b949141b733c5345b6ba8f87a226029cbabc7e9e121a413e49441e0", + "sha256:fbf521479bcac1e25a663df882c46a641a9bff6b56dc8b0fafaebd2f66fb231b", + "sha256:fc9b106a1bf918db68619fdcd6d5ad4f972fdd19c01d19bdb6bf63f3589a9ec5", + "sha256:fcdd00edfd0a3001e0181eab3e63bd5c74ad3e67152c84f93f13769a40e073a7", + "sha256:fe4bda6bd4340caa6e5cf95e73f8fea5c4bfc55763dd42f1b50a94c1b4a2fbd4" + ], + "version": "==4.9.3" + }, + "parse": { + "hashes": [ + "sha256:371ed3800dc63983832159cc9373156613947707bc448b5215473a219dbd4362", + "sha256:cc3a47236ff05da377617ddefa867b7ba983819c664e1afe46249e5b469be464" + ], + "version": "==1.19.1" + }, + "pyee": { + "hashes": [ + "sha256:5c7e60f8df95710dbe17550e16ce0153f83990c00ef744841b43f371ed53ebea", + "sha256:c09f56e36eb10bf23aa2aacf145f690ded75b990a3d9523fd478b005940303d2" + ], + "version": "==8.2.2" + }, + "pyppeteer": { + "hashes": [ + "sha256:11a734d8f02c6b128035aba8faf32748f2016310a6a1cbc6aa5b1e2580742e8f", + "sha256:ddb0d15cb644720160d49abb1ad0d97e87a55581febf1b7531be9e983aad7742" + ], + "version": "==1.0.2" + }, + "pyquery": { + "hashes": [ + "sha256:8dfc9b4b7c5f877d619bbae74b1898d5743f6ca248cfd5d72b504dd614da312f", + "sha256:963e8d4e90262ff6d8dec072ea97285dc374a2f69cad7776f4082abcf6a1d8ae" + ], + "version": "==2.0.0" + }, + "requests": { + "hashes": [ + "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", + "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + ], + "version": "==2.31.0" + }, + "requests-html": { + "hashes": [ + "sha256:7e929ecfed95fb1d0994bb368295d6d7c4d06b03fcb900c33d7d0b17e6003947", + "sha256:cb8a78cf829c4eca9d6233f28524f65dd2bfaafb4bdbbc407f0a0b8f487df6e2" + ], + "version": "==0.10.0" + }, + "soupsieve": { + "hashes": [ + "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690", + "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7" + ], + "version": "==2.5" + }, + "tqdm": { + "hashes": [ + "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386", + "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7" + ], + "version": "==4.66.1" + }, + "urllib3": { + "hashes": [ + "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f", + "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14" + ], + "version": "==1.26.16" + }, + "w3lib": { + "hashes": [ + "sha256:c4432926e739caa8e3f49f5de783f336df563d9490416aebd5d39fb896d264e7", + "sha256:ed5b74e997eea2abe3c1321f916e344144ee8e9072a6f33463ee8e57f858a4b1" + ], + "version": "==2.1.2" + }, + "websockets": { + "hashes": [ + "sha256:00213676a2e46b6ebf6045bc11d0f529d9120baa6f58d122b4021ad92adabd41", + "sha256:00c870522cdb69cd625b93f002961ffb0c095394f06ba8c48f17eef7c1541f96", + "sha256:0154f7691e4fe6c2b2bc275b5701e8b158dae92a1ab229e2b940efe11905dff4", + "sha256:05a7233089f8bd355e8cbe127c2e8ca0b4ea55467861906b80d2ebc7db4d6b72", + "sha256:09a1814bb15eff7069e51fed0826df0bc0702652b5cb8f87697d469d79c23576", + "sha256:0cff816f51fb33c26d6e2b16b5c7d48eaa31dae5488ace6aae468b361f422b63", + "sha256:185929b4808b36a79c65b7865783b87b6841e852ef5407a2fb0c03381092fa3b", + "sha256:2fc8709c00704194213d45e455adc106ff9e87658297f72d544220e32029cd3d", + "sha256:33d69ca7612f0ddff3316b0c7b33ca180d464ecac2d115805c044bf0a3b0d032", + "sha256:389f8dbb5c489e305fb113ca1b6bdcdaa130923f77485db5b189de343a179393", + "sha256:38ea7b82bfcae927eeffc55d2ffa31665dc7fec7b8dc654506b8e5a518eb4d50", + "sha256:3d3cac3e32b2c8414f4f87c1b2ab686fa6284a980ba283617404377cd448f631", + "sha256:40e826de3085721dabc7cf9bfd41682dadc02286d8cf149b3ad05bff89311e4f", + "sha256:4239b6027e3d66a89446908ff3027d2737afc1a375f8fd3eea630a4842ec9a0c", + "sha256:45ec8e75b7dbc9539cbfafa570742fe4f676eb8b0d3694b67dabe2f2ceed8aa6", + "sha256:47a2964021f2110116cc1125b3e6d87ab5ad16dea161949e7244ec583b905bb4", + "sha256:48c08473563323f9c9debac781ecf66f94ad5a3680a38fe84dee5388cf5acaf6", + "sha256:4c6d2264f485f0b53adf22697ac11e261ce84805c232ed5dbe6b1bcb84b00ff0", + "sha256:4f72e5cd0f18f262f5da20efa9e241699e0cf3a766317a17392550c9ad7b37d8", + "sha256:56029457f219ade1f2fc12a6504ea61e14ee227a815531f9738e41203a429112", + "sha256:5c1289596042fad2cdceb05e1ebf7aadf9995c928e0da2b7a4e99494953b1b94", + "sha256:62e627f6b6d4aed919a2052efc408da7a545c606268d5ab5bfab4432734b82b4", + "sha256:74de2b894b47f1d21cbd0b37a5e2b2392ad95d17ae983e64727e18eb281fe7cb", + "sha256:7c584f366f46ba667cfa66020344886cf47088e79c9b9d39c84ce9ea98aaa331", + "sha256:7d27a7e34c313b3a7f91adcd05134315002aaf8540d7b4f90336beafaea6217c", + "sha256:7d3f0b61c45c3fa9a349cf484962c559a8a1d80dae6977276df8fd1fa5e3cb8c", + "sha256:82ff5e1cae4e855147fd57a2863376ed7454134c2bf49ec604dfe71e446e2193", + "sha256:84bc2a7d075f32f6ed98652db3a680a17a4edb21ca7f80fe42e38753a58ee02b", + "sha256:884be66c76a444c59f801ac13f40c76f176f1bfa815ef5b8ed44321e74f1600b", + "sha256:8a5cc00546e0a701da4639aa0bbcb0ae2bb678c87f46da01ac2d789e1f2d2038", + "sha256:8dc96f64ae43dde92530775e9cb169979f414dcf5cff670455d81a6823b42089", + "sha256:8f38706e0b15d3c20ef6259fd4bc1700cd133b06c3c1bb108ffe3f8947be15fa", + "sha256:90fcf8929836d4a0e964d799a58823547df5a5e9afa83081761630553be731f9", + "sha256:931c039af54fc195fe6ad536fde4b0de04da9d5916e78e55405436348cfb0e56", + "sha256:932af322458da7e4e35df32f050389e13d3d96b09d274b22a7aa1808f292fee4", + "sha256:942de28af58f352a6f588bc72490ae0f4ccd6dfc2bd3de5945b882a078e4e179", + "sha256:9bc42e8402dc5e9905fb8b9649f57efcb2056693b7e88faa8fb029256ba9c68c", + "sha256:a7a240d7a74bf8d5cb3bfe6be7f21697a28ec4b1a437607bae08ac7acf5b4882", + "sha256:a9f9a735deaf9a0cadc2d8c50d1a5bcdbae8b6e539c6e08237bc4082d7c13f28", + "sha256:ae5e95cfb53ab1da62185e23b3130e11d64431179debac6dc3c6acf08760e9b1", + "sha256:b029fb2032ae4724d8ae8d4f6b363f2cc39e4c7b12454df8df7f0f563ed3e61a", + "sha256:b0d15c968ea7a65211e084f523151dbf8ae44634de03c801b8bd070b74e85033", + "sha256:b343f521b047493dc4022dd338fc6db9d9282658862756b4f6fd0e996c1380e1", + "sha256:b627c266f295de9dea86bd1112ed3d5fafb69a348af30a2422e16590a8ecba13", + "sha256:b9968694c5f467bf67ef97ae7ad4d56d14be2751000c1207d31bf3bb8860bae8", + "sha256:ba089c499e1f4155d2a3c2a05d2878a3428cf321c848f2b5a45ce55f0d7d310c", + "sha256:bbccd847aa0c3a69b5f691a84d2341a4f8a629c6922558f2a70611305f902d74", + "sha256:bc0b82d728fe21a0d03e65f81980abbbcb13b5387f733a1a870672c5be26edab", + "sha256:c57e4c1349fbe0e446c9fa7b19ed2f8a4417233b6984277cce392819123142d3", + "sha256:c94ae4faf2d09f7c81847c63843f84fe47bf6253c9d60b20f25edfd30fb12588", + "sha256:c9b27d6c1c6cd53dc93614967e9ce00ae7f864a2d9f99fe5ed86706e1ecbf485", + "sha256:d210abe51b5da0ffdbf7b43eed0cfdff8a55a1ab17abbec4301c9ff077dd0342", + "sha256:d58804e996d7d2307173d56c297cf7bc132c52df27a3efaac5e8d43e36c21c48", + "sha256:d6a4162139374a49eb18ef5b2f4da1dd95c994588f5033d64e0bbfda4b6b6fcf", + "sha256:da39dd03d130162deb63da51f6e66ed73032ae62e74aaccc4236e30edccddbb0", + "sha256:db3c336f9eda2532ec0fd8ea49fef7a8df8f6c804cdf4f39e5c5c0d4a4ad9a7a", + "sha256:dd500e0a5e11969cdd3320935ca2ff1e936f2358f9c2e61f100a1660933320ea", + "sha256:dd9becd5fe29773d140d68d607d66a38f60e31b86df75332703757ee645b6faf", + "sha256:e0cb5cc6ece6ffa75baccfd5c02cffe776f3f5c8bf486811f9d3ea3453676ce8", + "sha256:e23173580d740bf8822fd0379e4bf30aa1d5a92a4f252d34e893070c081050df", + "sha256:e3a686ecb4aa0d64ae60c9c9f1a7d5d46cab9bfb5d91a2d303d00e2cd4c4c5cc", + "sha256:e789376b52c295c4946403bd0efecf27ab98f05319df4583d3c48e43c7342c2f", + "sha256:edc344de4dac1d89300a053ac973299e82d3db56330f3494905643bb68801269", + "sha256:eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3", + "sha256:f2c38d588887a609191d30e902df2a32711f708abfd85d318ca9b367258cfd0c", + "sha256:f55b5905705725af31ccef50e55391621532cd64fbf0bc6f4bac935f0fccec46", + "sha256:f5fc088b7a32f244c519a048c170f14cf2251b849ef0e20cbbb0fdf0fdaf556f", + "sha256:fe10ddc59b304cb19a1bdf5bd0a7719cbbc9fbdd57ac80ed436b709fcf889106", + "sha256:ff64a1d38d156d429404aaa84b27305e957fd10c30e5880d1765c9480bea490f" + ], + "version": "==10.4" + }, + "worldometer": { + "hashes": [ + "sha256:515688ed4bd3974914c584fc2f80dc1f6584e4eec55e5dac59d2dec652143ab7", + "sha256:92edfd8a089657cbef9b62116418d67b233e3f7982efef79cd831d8625a1f43e" + ], + "index": "pypi", + "version": "==1.0.1" + }, + "zipp": { + "hashes": [ + "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0", + "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147" + ], + "markers": "python_version < '3.10'", + "version": "==3.16.2" + } + }, + "develop": {} +} diff --git a/README.md b/README.md index 0794b445e..c20239a78 100644 --- a/README.md +++ b/README.md @@ -12,72 +12,16 @@ All `GitHub Pages` websites are managed on GitHub infrastructure. GitHub uses `J ## Preparing a Preview Site In all development, it is recommended to test your code before deployment. The GitHub Pages development process is optimized by testing your development on your local machine, prior to files on GitHub -Development Cycle. For GitHub pages, the tooling described below will create a development cycle `make-code-save-preview`. In the development cycle, it is a requirement to preview work locally, prior to doing a VSCode `commit` to git. +Development Cycle. For GitHub pages, the tooling described below will create a development cycle `make-code-save-preview`. In the development cycle, it is a requirement to preview work locally, prior to doing a VSCode `commit` to git. Deployment Cycle. In the deplopyment cycle, `sync-github-action-review`, it is a requirement to complete the development cycle prior to doing a VSCode `sync`. The sync triggers github repository update. The action starts the jekyll build to publish the website. Any step can have errors and will require you to do a review. ### WSL and/or Ubuntu installation requirements - The result of these step is Ubuntu tools to run preview server. These procedures were created using [jekyllrb.com](https://jekyllrb.com/docs/installation/ubuntu/) -- Run scripts in scripts directory of teacher repo: setup_ubuntu.sh and activate.sh. Or, follow commands below. -```bash -## WSL/Ubuntu commands -# sudo apt install, installs packages for Ubuntu -echo "=== Ugrade Packages ===" -sudo apt update -sudo apt upgrade -y -# -echo "=== Install Ruby ===" -sudo apt install -y ruby-full build-essential zlib1g-dev -# -echo "=== Install Python ===" -sudo apt-get install -y python3 python3-pip python-is-python3 -# -echo "=== Install Jupyter Notebook ===" -sudo apt-get install -y jupyter-notebook - -# bash commands, install user requirements. -echo "=== GitHub pages build tools ===" -export GEM_HOME="$HOME/gems" -export PATH="$HOME/gems/bin:$PATH" -echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc -echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc -echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc -echo "=== Gem install starting, thinking... ===" -gem install jekyll bundler -head -30 ./teacher/scripts/activate.sh -echo "=== !!!Start a new Terminal!!! ===" -``` +- Run scripts in scripts directory of student repo: setup_ubuntu.sh and activate.sh. Expected name of the repository to run these scripts is 'student'. ### MacOs installation requirements -- Ihe result of these step are MacOS tools to run preview server. These procedures were created using [jekyllrb.com](https://jekyllrb.com/docs/installation/macos/). Run scripts in scripts directory of teacher repo: setup_macos.sh and activate_macos.sh. Or, follow commands below. -```bash -# MacOS commands -# brew install, installs packages for MacOS -echo "=== Ugrade Packages ===" -brew update -brew upgrade -# -echo "=== Install Ruby ===" -brew install chruby ruby-install xz -ruby-install ruby 3.1.3 -# -echo "=== Install Python ===" -brew install python -# -echo "=== Install Jupyter Notebook ===" -brew install jupyter - -# bash commands, install user requirements. -export GEM_HOME="$HOME/gems" -export PATH="$HOME/gems/bin:$PATH" -echo '# Install Ruby Gems to ~/gems' >> ~/.zshrc -echo 'export GEM_HOME="$HOME/gems"' >> ~/.zshrc -echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.zshrc -echo "=== Gem install starting, thinking... ===" -gem install jekyll bundler -head -30 ./teacher/scripts/activate.sh -echo "=== !!!Start a new Terminal!!! ===" -``` +- Ihe result of these step are MacOS tools to run preview server. These procedures were created using [jekyllrb.com](https://jekyllrb.com/docs/installation/macos/). Run scripts in scripts directory of student repo: setup_macos.sh and activate_macos.sh. Expected name of the repository to run these scripts is 'student'. ### Preview - The result of these step is server running on: http://0.0.0.0:4100/teacher/. Regeneration messages will run in terminal on any save. Press the Enter or Return key in the terminal at any time to enter commands. @@ -122,3 +66,41 @@ bundle install ```bash make convert ``` +### Meta Data (Front Matter) +- Meta data also known as front matter is a set of key value pairs that can provide additional information to github pages about .md and .ipynb files. This can and probably will be used in other file types (ie doc, pdf), if we added them to the system. + +- In the front matter you can also define things like a title and description for the page. Additional front matter is defined to place content on "Computer Science Lab Notebook" page. The `courses:` key will place data on a specific page with the nested `week:` placing data on a specific row on the page. The `type:` key in front matter will place blog under the plans, hacks(ToDo), and tangibles column. + +- In our files the front matter is defined at the top of the page or the first markdown cell. + + - First open one of the .md or .ipynb files already included in either your _posts folder or your _notebooks folder. + + - In the .md file you should notice something similar to this at the top of the page. To see this in your .ipynb files you will need to double click the markdown cell at the top of the file. + + ```yaml + --- + toc: true + comments: false + layout: post + title: Daily Plan Sample + description: Example Blog!!! This shows planning and notes from hacks. + type: plans + courses: { compsci: {week: 0} } + --- + ``` + +- Front matter will always have '---' at the top and bottom to distinguish it and each key value pair will be separated by a ':'. + +- Here we can modify things like the title and description. + +- The type value will tells us which column this is going to appear under, supported values: `plans`, `hacks`, `tangibles`. + +- The courses tells us which menu item it will be under, in this case the `compsci` menu, and the `week` tells it what row (week) it will appear under that menu. + +- In our examples, hacks(ToDo) contains references to our IPYNB files; these are stored in GitHub under the `_notebooks` folder. The plans and tangibles contains references to our MD files; these are stored in GitHub under the `_posts` folder. + +- Key files in Computer Science Lab Notebook + - `compsci.md` - this is the "Computer Science Lab Notebook" page and is the link `https://nighthawkcoders.github.io/student/compsci`. It contains the Title and Number of units on the page. + - `_data/compsci.yml` - this contains the supporting data that helps organize the units on the page. + - `_layouts`\schedule.html - this contains code, in the Liquid language, that generates the HTML for all the rows and columns. + - fyi, the schedule.html could work for another type of page. For instance, you could make a csa.md, _data/csa.yml, and tag files with `csa: {week: 0}` under courses. diff --git a/_config.yml b/_config.yml index 8f941a22e..ab294f4ab 100644 --- a/_config.yml +++ b/_config.yml @@ -1,14 +1,15 @@ title: CompSci Blogs description: "August 2023 to June 2024" -owner_name: Nighthawk Coders -github_username: nighthawkcoders +owner_name: Soham Kulkarni +github_username: SOoctosnake baseurl: "/student" -remote_theme: pages-themes/midnight@v0.2.0 +# remote_theme: pages-themes/midnight@v0.2.0 # remote_theme: pages-themes/dinky@v0.2.0 # remote_theme: pages-themes/minimal@v0.2.0 # remote_theme: pages-themes/hacker@v0.2.0 -# remote_theme: pages-themes/cayman@v0.2.0 +remote_theme: pages-themes/cayman@v0.2.0 # remote_theme: pages-themes/time-machine@v0.2.0 plugins: - jekyll-remote-theme future: true + diff --git a/_config.yml.bak b/_config.yml.bak new file mode 100644 index 000000000..037d3b851 --- /dev/null +++ b/_config.yml.bak @@ -0,0 +1,15 @@ +title: CompSci Blogs +description: "August 2023 to June 2024" +owner_name: Soham Kulkarni +github_username: SOoctosnake +baseurl: "/student" +# remote_theme: pages-themes/modernist@v0.2.0 +#remote_theme: pages-themes/dinky@v0.2.0 +# remote_theme: pages-themes/minimal@v0.2.0 +# remote_theme: pages-themes/hacker@v0.2.0 +remote_theme: pages-themes/cayman@v0.2.0 +# remote_theme: pages-themes/time-machine@v0.2.0 +plugins: +- jekyll-remote-theme +future: true + diff --git a/_data/compsci.yml b/_data/compsci.yml new file mode 100644 index 000000000..624c41d5d --- /dev/null +++ b/_data/compsci.yml @@ -0,0 +1,11 @@ +# CSP course meta data +Unit1: + title: Build a Lab Notebook + description: Install Tools. Design lab notebook. Learn GitHub Pages. Work with Pair (pair name). + start: 0 + end: 3 +Unit2: + title: Learn Language + description: Learn (JavaScript|Python|Java). Start Agile development process. + start: 4 + end: 7 diff --git a/_data/csa.yml b/_data/csa.yml deleted file mode 100644 index d690f859a..000000000 --- a/_data/csa.yml +++ /dev/null @@ -1,46 +0,0 @@ -# CSP course meta data -Unit1: - title: Introduction to Tools and Resources - description: To learn Java and build skills for Career Technical Education students will quickly immerse into Tools and Resources for Java Development and Blogging. These early weeks will focus on the Development Environment, GitHub Pages Blogging platform, AP Classroom resources, and Programming Java with VSCode and Jupyter Notebooks. - start: 0 - end: 3 -Unit2: - title: Java Mini-labs - description: Students have been introduced to Classes and Inheritance in Python and JavaScript. In this unit students will become more familiar with Java development and classes through mini-labs. These labs will focus on AP required aspects of Java, additionally they can be used as code to support the backend of a Desktop App or WebSite. This unit concludes with 4 person Project Plan, kicking off the end of trimester N@TM project. Students will be able to write code that completes full stack process of Frontend talking to the Java backend. - start: 4 - end: 7 -Unit3: - title: Individual/Team Projects and N@tM - description: This Units requirement is to to build individual development skills and a Team Frontend and Backend project in Java. By the end of this unit students will be aware of all the College Board Units and FRQ types. Student will participate in live grading of peers work. Fastpages Blogs and Jupyter Notebooks are required for all individuals. By the end of this section you should have examples, study materials, and code that show a great deal of effort, understanding, and competency. - start: 8 - end: 12 -Unit4: - title: College Board Teaching and Study - description: This period will complete formal teaching and grading on the basics of the 10 units. Also, there will be a tech talk and homework on each FRQ type customized for Team PBL idea. - start: 13 - end: 16 -Unit5: - title: Passion Projects - description: Objective of these weeks is to explore and create ideas and concepts for a Team two trimester project. Adding frontend and creativity while using APIs/Databases. This should be a project of personal and team interest. Team projects that are most liked by Teachers and Students will be continued in Trimester 3. - start: 17 - end: 20 -Unit6: - title: Creative Development and N@tM - description: This will be most creative portion of year for CSA students. Each person within "Student Teams" will have their own specialty within their student project that shows Full Stack competency, requiring Java as backend. Intentions for this period is to have a free and creative period, driven by your Issues and Scrum Board. Student should be able to talk about design, do fe/be coding, addd database features and perform weekly live reviews. - start: 21 - end: 24 -Unit7: - title: Data Structures - description: A focus Data Structures that relate to the AP exam. A key requirement is to make your own Algo Rythmic sorting video. The theme is produce work that can be used to help you pass the AP Exam and improve your Passion Project. Each student must cover key concepts from one of the Four AP FRQ types, contain a key Data Structure, and utilize sorting. These requirements are fairly generic and could complement any project. - start: 25 - end: 29 -Unit8: - title: AP Weeks - description: Student will lead several study sessions (20 minute test, follow by review) the week before the exam. In any break in study, students will transition activities to a final project. - start: 30 - end: 32 -Unit9: - title: Final Project and N@tM - description: Wrap up your preferred project. There will be an opportunity to contribute and be published to the NightHawk Coding Society library. If your project is selected, then you will receive a high 'A' on final. - start: 33 - end: 36 diff --git a/_data/csp.yml b/_data/csp.yml deleted file mode 100644 index 9ca76bfaf..000000000 --- a/_data/csp.yml +++ /dev/null @@ -1,46 +0,0 @@ -# CSP course meta data -Unit1: - title: Introduction to Tools and Resources - description: The initial weeks focus on introducing Tools, Pair Programming, and the AP Resources that we plan to use throughout the year. At the end of Weeks 0-3, students will be exposed to blogging with GitHub Pages; developing with Jupyter Notebooks, Python, JavaScript, HTML, and Code.org AppLab; working with AP classroom and becoming familiar with Create Performance Task project requirements. - start: 0 - end: 3 -Unit2: - title: Introduction to Web Development - description: Websites are made up of several key parts. Frontend, Backend, Data and Deployment. The focus for these weeks is to enable students to perform the aspects of constructing and deploying a simple Website. There will be several lectures during this period to provide you with concepts on how to build a WebSite, including working with data from a backend server. - start: 4 - end: 7 -Unit3: - title: Web Application, Data, and N@tM - description: Student at teams need to build their own Website and Blog their understanding. The Website should include their own interests, but requires use of Python Flask and JavaScript programming. By the end of the Unit, students will be ready to start many of the technical coding aspects of Web Development, having established a Deployed Website. In November, the Trimester work will end with a project and student participation in Electives Department "Night at the Museum" (N@tM). - start: 8 - end: 12 -Unit4: - title: Algorithmic Programming - description: Trimester 2 begins with student teaching and a focus on algorithms. Each week a "Student Team" has a teaching assignment supported by College Board materials. Additionally, the Teacher is providing Career Tech mini-labs that correspond to one or more topics for the week. Use the two things together as you improve your learning experience, Frontend blog and Jupyter Notebooks. - start: 13 - end: 16 -Unit5: - title: OOP and Databases - description: Trimester 2 continues with student learning OOP and immediately applying it to Databases. Each week a "Student Teams" will be working on frontend and backend elements for their Create Performance Task (CPT). GitHub pages will be focus of instruction for frontend, OOP in Python will be instruction provided to create a database which will help exceed every CPT requirement. - start: 17 - end: 20 -Unit6: - title: Create Performance Task (CPT) and N@tM - description: Trimester 2 concludes with student presenting their CPT project at N@tM. Each person within "Student Teams" will have their own specialty within the student project that satisfied all their Create Performance Task requirements. Student should be able to talk about design, coding, and present features of their portion of the system. - start: 21 - end: 24 -Unit7: - title: Data Structures - description: This is the beginning of a college course following outline of CS113 Data Structures from Mira Costa CC. Topics, using Python, include searching, sorting, hashing, algorithms, analysis, object-oriented design, collections, lists, stacks, queues, trees, sets, dictionaries, and graphs. - start: 25 - end: 29 -Unit8: - title: AP Weeks - description: Activities will be focused on supporting students in test preparations, including student teaching. Days that are not focused on test preparation will be focused on planning for year end project/portfolio. - start: 30 - end: 32 -Unit9: - title: Passion Project and N@tM - description: Presenting accomplishments for the year by creating a passion project for N@tM. This project will serve as the year end final exam. - start: 33 - end: 36 diff --git a/_data/csse.yml b/_data/csse.yml deleted file mode 100644 index 502026602..000000000 --- a/_data/csse.yml +++ /dev/null @@ -1,31 +0,0 @@ -# CSP course meta data -Unit1: - title: Introduction to Tools, Blogging, Markdown, HTML and CSS - description: The initial weeks focus on introducing Tools, Pair Programming, and tools we will using throughout the year. At the end of the first unit, students will be blogging on GitHub and creating GitHub Pages; be introduced to Jupyter Notebooks and VSCode, coding with JavaScript, HTML, and CSS - start: 0 - end: 3 -Unit2: - title: Introduction to Development with JavaScript - description: A key focus of this course is to make Web Games using JavaScript. These next few weeks we will perform the aspects of constructing a game and deploying the game to GitHub Pages. Our goal is to participate in N@tM with the other CS classes and other classes from the Electives Department. - start: 4 - end: 7 -Unit3: - title: Building a Web Application with GitHub Pages for N@tM - description: Part of the process of becoming technically proficient is taking on challenges while coding, these challenges will often make a student feel uncomforatable. But with some vision, questions, and AI research it is amazing what can be done. - start: 8 - end: 12 -Unit4: - title: Working with Data and Frameworks - description: Understanding key development frameworks available in GitHub Pages make development faster. We will look at storing data in the Browsers with Local Storage, generating repetitive code using YML and Liquid and styling HTML with SASS. - start: 13 - end: 16 -Unit5: - title: Algorithmic and Programming Fundamentals - description: Each week a "Student Team" will have a teaching assignment. Additionally, the Teacher is providing mini-labs that correspond to topics for the week. Using the two things together, you will your learning experience, blogging and Jupyter Notebooks skills. - start: 17 - end: 20 -Unit6: - title: Create a Final Project and N@tM - description: Trimester 2 concludes with student presenting their CPT project at N@tM. Each person within "Student Teams" will have their own specialty within the student project that satisfied all their Create Performance Task requirements. Student should be able to talk about design, coding, and present features of their portion of the system. - start: 21 - end: 24 diff --git a/_data/mario_metadata.yml b/_data/mario_metadata.yml deleted file mode 100644 index 53bc09674..000000000 --- a/_data/mario_metadata.yml +++ /dev/null @@ -1,65 +0,0 @@ -# Metadata to describe animations in sprite file images/mario_animations.png -- Rest: - row: 0 - col: 0 - frames: 15 -- RestL: - row: 1 - col: 0 - frames: 15 -- Walk: - row: 2 - col: 0 - frames: 8 -- Tada: - row: 2 - col: 11 - frames: 3 -- WalkL: - row: 3 - col: 0 - frames: 8 -- TadaL: - row: 3 - col: 11 - frames: 3 -- Run1: - row: 4 - col: 0 - frames: 15 -- Run1L: - row: 5 - col: 0 - frames: 15 -- Run2: - row: 6 - col: 0 - frames: 15 -- Run2L: - row: 7 - col: 0 - frames: 15 -- Puff: - row: 8 - col: 0 - frames: 15 -- PuffL: - row: 9 - col: 0 - frames: 15 -- Cheer: - row: 10 - col: 0 - frames: 15 -- CheerL: - row: 11 - col: 0 - frames: 15 -- Flip: - row: 12 - col: 0 - frames: 15 -- FlipL: - row: 13 - col: 0 - frames: 15 diff --git a/_includes/header.html b/_includes/header.html index 4c482389c..ea6f0644c 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -4,10 +4,9 @@ diff --git a/_includes/help_list.html b/_includes/help_list.html new file mode 100644 index 000000000..c4373a391 --- /dev/null +++ b/_includes/help_list.html @@ -0,0 +1,9 @@ +
![]() |
+ Home | +HTML | +Data Types | +DOM | +JavaScript | +JS Debugging | +
This is a paragraph.
\n" + ], + "text/plain": [ + "This is a paragraph.
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Attributes\n", + "- Learn about [attributes](https://www.w3schools.com/html/html_attributes.asp) \n", + "- Tags can have additional info in the form of attributes\n", + "- Attributes usually come in name/value pairs like: name=\"value\"\n", + "\n", + "```html\n", + "This is a paragraph
\n", + "```\n", + "\n", + "Button\n", + "\n", + "```html\n", + "\n", + "```\n", + "\n", + "Div (groups together related content)\n", + "\n", + "```html\n", + "\n", + "This is the first paragarph of section 1
\n", + "This is the second paragraph of section 1
\n", + "This is the first paragarph of section 2
\n", + "This is the second paragraph of section 2
\n", + "Paragraph description of page
\n", + "\n" + ], + "text/plain": [ + "Paragraph description of page
\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Writing text to console.log\n", + "- The text written with `console.log` appears in the Console\n", + "- `console.log` allows you to write text -- but you don't see any text in above example until you view Console.\n", + "- Activate Console window\n", + " - VSCode Help-Toggle Developer Tools allows you to see console.log output\n", + " - Chrome and other browsers require right click -> inspect also allows access to console.log output\n", + " - Safari users will need to enable developer settings before inspecting an element. To do this go to Safari settings -> advanced and check the box next to \"Show develop menu in menu bar\"\n", + " - By default you usually need to click Console next to Elements, to see console.log output\n", + " - Also, you may want to press clear console (cirlcl with slash) to clean up screen before analysis. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Try code with Console\n", + "- Developers typically keep console open\n", + "- In console window, you can run javascript code from prompt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Storing data\n", + "- One of the most important things in programming is learning how data is stored, this is often called Data Abstraction (the ability to represent data in a programming language)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Types of data\n", + "- Javascript has a few basic types of data, which align with what the types of data you might know yourself\n", + "- In javascript, these types are formalized as:\n", + " - text = \"string\", number = \"number\", true/false = \"boolean\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Name the Data\n", + "- When you think of data, it has a name and a value.\n", + "- Using the \"var\" JavaScript syntax you create a `variable` with a name and a value.\n", + "- In javascript this can represented with the following: `var someName = value;`\n", + " - The name cannot have spaces\n", + " - Text values must be wrapped in single or double quotes to identify it as text (see exmaples below)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Accessing data\n", + "- To access data (the value of a variable), simply just use the name of the variable\n", + "- For example, we can use the values from previously in a `console.log`" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "vscode": { + "languageId": "html" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "`), links (``), and formatting tags (``, ``).
+- HTML elements can be grouped together using the `
+ Visual Studio Code claims to provide just the tools a developer needs for a quick code-build-debug and version control cycle. It provides a Market Place for enhancements and more complex workflows. Before adding extensions, clone projects and see what is requested or added. Here are some extension that were added through that process or that I have added...
+
+ Review Details in Marketplace for better explanation of purpose of the things explained above. There is a lot more! As you need Git help look at things like Git History and GitLens. Or, perhaps you enjoy Vim and want Vim emulation for editing, their is an extension for that. Later, there may be interest in AWS Toolkit or Deploy extensions. We will learn more about Marketplace Extensions as we do more.
+
+ Visual Studio Code claims to provide just the tools a developer needs for a quick code-build-debug and version control cycle. It provides a Market Place for enhancements and more complex workflows. Before adding extensions, clone projects and see what is requested or added. Here are some extension that were added through that process or that I have added...
+
+ Review Details in Marketplace for better explanation of purpose of the things explained above. There is a lot more! As you need Git help look at things like Git History and GitLens. Or, perhaps you enjoy Vim and want Vim emulation for editing, their is an extension for that. Later, there may be interest in AWS Toolkit or Deploy extensions. We will learn more about Marketplace Extensions as we do more.
+ This is a multiple choice test that will test your knowledge about me. Enter a command to get its definition: Snake score: 0 Guess the outcome: ** for paragraphs, "" for links, and This is a paragraph of text. `), links (``), and formatting tags (``, ``).
+- HTML elements can be grouped together using the `
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Create GitHub Page Repository
+You will want to create a personal Github Pages blog for this class. This is a place where you can code, complete the hacks, and record what you have learned.
+
+### Git Config
+Run the following commands to configure user git connection to GitHub. This is required, before pushing code to GitHub.
+
+ ```bash
+ # Setup GitHub ID
+ git config --global user.email
+
+## VSCode commit/sync to GitHub Pages
+The VSCode saved files are only stored on your computer locally until you commit and then sync the changes.
+
+### Commit Changes, version control locally
+This creates a version of your files in you local git database. Often developers commit several times before they sync in VSCode or push from command line. This allows lots of small changes that can be easily reviewed and rolled back.
+
+1. Click on the button that supports "Source Control" in VS Code's left sidebar
+
+2. Click on the plus sign to stage your changes
+
+ 
+
+3. Enter a message for your commit in the message box.
+
+4. Click the "Commit button"
+
+
+### Sync Changes, update change in GitHub
+Sync will push files to GitHub and create an Action for GitHub Pages updates, site will update if code is without errors.
+
+- Click the Menu button and then click "Push".
+
+ 
+
+- Watch Actions until done, open action link and review changes on github.io
+
diff --git a/_posts/2023-08-15-Tools_Sprint.md b/_posts/2023-08-28-Week_1_Plans.md
similarity index 53%
rename from _posts/2023-08-15-Tools_Sprint.md
rename to _posts/2023-08-28-Week_1_Plans.md
index eb5a0cb74..b194c2364 100644
--- a/_posts/2023-08-15-Tools_Sprint.md
+++ b/_posts/2023-08-28-Week_1_Plans.md
@@ -1,26 +1,26 @@
---
toc: true
-comments: true
+comments: false
layout: post
-title: Tools Setup
-description: Become one with your tools. They could be more important than code, code, coding.
+title: Weekly Plan
+description: Plan for Week 1
type: plans
-courses: { csse: {week: 0}, csp: {week: 0, categories: [4.A]}, csa: {week: 0} }
-categories: [C1.4]
+courses: { compsci: {week: 1} }
---
-### PBL Unit 1 / Week 0
-Learning outcome. Installing Tools and showing usage of VSCode.
-- Wednesday - Pick pair share partner, Pick crossover pair, Establish team of four. Spend some time talking and getting to know each other, particularly with Computer Science experience and goals. You should be matched with someone that has similar experience.
-- Thursday - Setup Tools on laptop and/or Cloud Computer.
-- Friday - Review and test as a Pair. Spend 25 minutes at one keyboard then switch for next 25 minutes.
+### PBL Unit 1 / Week 1
+ - Download remaining tools, get a local website running
+ - Experiment on modifying the website with images, videos, minigames
+ - Edit blogs to create notebook and modify it
+ - Test around with the blogs and index, add minigames
-### Hack Prepartation
-> Look for 'Hacks' to know what to do next. Try to be done and learn your machine before Monday EOD.
+
+### Pair Planning Meeting
+> Update Blog to contain all hacks. Review week with Pair and look ahead and start plan for next week. Try to be done and learn your machine before Monday EOD.
- A laptop, that you bring to class every day with ability to operate Development Tools on it or within the Cloud.
- GitHub Account, VSCode will be used to push/pull changes. GitHub is where we store and share code in the cloud, think of Google Docs but for Code.
- GitHub Pages will be used to host your personal blog: containing notes, answering hacks, and showing tangibles. Building pages will teach Markdown, HTML, CSS, JavaScript and more.
- Jupyter Notebooks will be used in conjunction with GitHub Pages to build running Code in your blog.
- Slack Account, install the App on Laptop and/or phone, get used to reading announcements. Slack is the tool that we will use for messaging, we have been averaging 1000s of essages each year.
- VSCode is the code editor we will be using in this class. VSCode is more than and editor, this type of tool is often called an Interactive Development Environment (IDE).
-- Run make commands to build and test blog locally, before pushing changes to GitHub pages.
+- Run make commands to build and test blog locally, before pushing changes to GitHub pages.
\ No newline at end of file
diff --git a/_posts/2023-08-30-Calculator_imported_2_.md b/_posts/2023-08-30-Calculator_imported_2_.md
new file mode 100644
index 000000000..5b4b93924
--- /dev/null
+++ b/_posts/2023-08-30-Calculator_imported_2_.md
@@ -0,0 +1,201 @@
+---
+comments: false
+layout: post
+title: Imported Calculator
+description: Grab Calculator Code and place in IPYNB
+type: hacks
+courses: {'compsci': {'week': 2}}
+---
+
+
+
+
+
+
+Hello. Welcome to the Get To Know Me Game.
+ Command Glossary
+ Math Quiz
+
+
+
+
+
+
diff --git a/_posts/2023-09-01-week_2_ticket.md b/_posts/2023-09-01-week_2_ticket.md
new file mode 100644
index 000000000..52e0dfc56
--- /dev/null
+++ b/_posts/2023-09-01-week_2_ticket.md
@@ -0,0 +1,24 @@
+---
+toc: true
+comments: true
+layout: post
+title: Review Ticket
+description: Overview of Week 2
+type: tangibles
+courses: { compsci: {week: 2} }
+---
+
+# Notebook/Website:
+
+- Copying New Repository: My first task was to copy a new repository created by Mortensen, which contained important files related to our project. This was essential to ensure that I had access to the latest updates and materials. I was able to successfully clone the repository.
+
+- Editing the Lab Notebook: Maintaining a comprehensive record of project activities and progress is crucial for tracking our work and ensuring that everyone is on the same page. I added all the programs, blogs and plans to my website. I used .ipynb and .md files to edit my page
+
+- Gaining Familiarity with .ipynb and .md Files: Working with .ipynb (Jupyter Notebook) and .md (Markdown) files is an essential skill in modern coding and data science projects.
+
+# Hacks:
+
+- We added a few game that Mortensen gave use. We add the calculator, game of life, and snake.
+
+- Developing "Calculator Quiz" from Scratch: Perhaps one of the most exciting accomplishments of the week was the development of the "Calculator Quiz" game entirely from scratch. The game generated a random equation and the user has to answer it correctly
+
diff --git a/_posts/2023-09-02-grade-calculator.md b/_posts/2023-09-02-grade-calculator.md
new file mode 100644
index 000000000..ce84ab4c4
--- /dev/null
+++ b/_posts/2023-09-02-grade-calculator.md
@@ -0,0 +1,92 @@
+---
+comments: false
+layout: post
+title: Grade Calculator
+description: A calculator that averages your grade
+type: hacks
+courses: {'compsci': {'week': 3}}
+---
+
+
+
+Grade Calculator
+Input scores, press tab to add each new number.
+
+
+ Total : 0.0
+ Count : 0.0
+ Average : 0.0
+
+
+Coin Flip Game
+ Drag and Drop Shapes Game
+ ** for headings, **
for images.
+
+## Example
+
+
This is a Heading
+
+
+## HTML Attributes
+- Construct: HTML attributes provide additional information about an element and are specified within the opening tag of an element. Attributes consist of a name and a value, separated by an equal sign.
+- Explanation: Attributes modify the behavior or appearance of HTML elements. For example, the href attribute in an anchor tag specifies the URL to which the link leads, and the src attribute in an image tag specifies the image source.
+
+## Example
+
+ Visit Example.com
+
+
+## HTML Forms
+- Construct: HTML forms are used to collect user input. They are defined using the **`, `
`), paragraphs (`
CO2 Emission Data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Year
+ CO2 Emission (in million tons)
+
+
+ 1950
+ 5.2
+
+
+ 1955
+ 6.1
+
+
+ 1960
+ 7.1
+
+
+ 1965
+ 8.4
+
+
+ 1970
+ 10.0
+
+
+ 1975
+ 12.2
+
+
+ 1980
+ 14.4
+
+
+ 1985
+ 16.8
+
+
+ 1990
+ 19.3
+
+
+ 1995
+ 21.9
+
+
+ 2000
+ 24.5
+
+
+ 2005
+ 27.2
+
+
+ 2010
+ 30.0
+
+
+ 2015
+ 33.0
+
+
+ 2020
+ 36.0
+ Top CO2 Emitting Countries in 2020
+
+
+
+
+
+
diff --git a/_posts/bash_guessing.sh b/_posts/bash_guessing.sh
new file mode 100755
index 000000000..a5e45855b
--- /dev/null
+++ b/_posts/bash_guessing.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# Generate a random number between 1 and 100
+random_number=$(( (RANDOM % 100) + 1 ))
+
+# Function to prompt for a guess and provide feedback
+guess_number() {
+ read -p "Guess a number between 1 and 100: " user_guess
+
+ if [[ $user_guess -eq $random_number ]]; then
+ echo "Congratulations! You guessed the correct number: $random_number"
+ elif [[ $user_guess -lt $random_number ]]; then
+ echo "Try again. The number is higher than $user_guess."
+ guess_number
+ else
+ echo "Try again. The number is lower than $user_guess."
+ guess_number
+ fi
+}
+
+echo "Welcome to the Number Guessing Game!"
+guess_number
+
diff --git a/_posts/terms.txt b/_posts/terms.txt
new file mode 100644
index 000000000..3b7366478
--- /dev/null
+++ b/_posts/terms.txt
@@ -0,0 +1,20 @@
+make=command that helps run your local server
+make convert=checks and ensures Jupyter notebooks are up to date
+make clean=stops the local server and cleans the files
+make stop=stops the local server
+cd=allows you to move through directories
+cd vscode=allows you to go to VSCode directory
+python –version=shows you your current python version
+jupyter –version=shows all your jupyter files and their current versions
+git clone-clones a repository
+rbenv versions=shows your current ruby versions
+ruby -v=shows your current ruby version
+bundle install=this command installs the dependencies in your Gemfile
+Image on Markdown=
+ls=lists files in the respository
+pwd=Print working directory command
+mkdir=Command used to create directories
+echo=Print any text that follows the command
+clear=Clear the terminal display
+mv=Move or rename files
+sudo=command to create privileges
diff --git a/_posts/yfin.py b/_posts/yfin.py
new file mode 100644
index 000000000..f1984a78f
--- /dev/null
+++ b/_posts/yfin.py
@@ -0,0 +1,7 @@
+import yfinance as yf
+
+ticker = input("Enter stock ticker: ")
+
+# Download 3 months of historical data using the daily time frame
+data = yf.download(ticker, period="3mo", interval="1d")
+print(data)
diff --git a/assets/css/style.scss b/assets/css/style.scss
new file mode 100644
index 000000000..f16fba087
--- /dev/null
+++ b/assets/css/style.scss
@@ -0,0 +1,90 @@
+---
+---
+
+@import "{{ site.theme }}";
+
+// STYLING PREFERNCES for SITE
+// mixin used as a template for buttons
+ @mixin button {
+ width: auto;
+ height: auto;
+ border-radius: 10px;
+ background-color: #21807c;
+ border: 3px solid black;
+ font-size: 1.5em;
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ grid-column: span 1;
+ grid-row: span 1;
+
+ // Creates smooth animation effect
+ transition: all 0.5s;
+ }
+
+ /* define class for redifined button */
+ .button {
+ @include button;
+ }
+
+ /* darkens the background color on hover to create a selecting effect */
+ .button:hover {
+ background-color: #373737;
+ }
+
+ /* "row style" is flexible size and aligns pictures in center */
+ .row {
+ align-items: center;
+ display: flex;
+ }
+
+ /* "column style" is one-third of the width with padding */
+ .column {
+ flex: 16.66%;
+ padding: 3px;
+ }
+
+// STYLING FOR CALCULATOR
+ /* class to create the calculator's container; uses CSS grid dsiplay to partition off buttons */
+ .calculator-container {
+ width: 90vw; /* this width and height is specified for mobile devices by default */
+ height: 80vh;
+ margin: 0 auto;
+
+ display: grid;
+ grid-template-columns: repeat(4, 1fr); /* fr is a special unit; learn more here: https://css-tricks.com/introduction-fr-css-unit/ */
+ grid-template-rows: 0.5fr repeat(4, 1fr);
+ gap: 10px 10px;
+ }
+
+ @media (min-width: 600px) {
+ .calculator-container {
+ width: 40vw;
+ height: 80vh;
+ }
+ }
+
+ /* styling for the calculator number button */
+ .calculator-number {
+ @extend .button;
+ }
+
+ /* styling for the calculator operation button */
+ .calculator-operation {
+ @extend .button;
+ }
+
+ /* styling for the calculator clear button */
+ .calculator-clear {
+ @extend .button;
+ background-color: #e68b1c;
+ }
+
+ /* styling for the calculator equals button */
+ .calculator-equals {
+ @extend .button;
+ background-color: #e70f0f;
+ }
+
diff --git a/assets/js/three.r119.min.js b/assets/js/three.r119.min.js
new file mode 100644
index 000000000..bdaa29bcc
--- /dev/null
+++ b/assets/js/three.r119.min.js
@@ -0,0 +1,2 @@
+// threejs.org/license
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).THREE={})}(this,(function(t){"use strict";void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Number.isInteger&&(Number.isInteger=function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t}),void 0===Math.sign&&(Math.sign=function(t){return t<0?-1:t>0?1:+t}),"name"in Function.prototype==!1&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^\s*function\s*([^\(\s]*)/)[1]}}),void 0===Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var e=Object(t),n=1;n
+
+ Rank
+ Country
+ CO2 Emission (in million tons)
+
+
+ 1
+ China
+ 10,065
+
+
+ 2
+ United States
+ 5,416
+
+
+ 3
+ India
+ 2,654
+
+
+ 4
+ Russia
+ 1,711
+
+
+
+ 5
+ Japan
+ 1,162
+