diff --git a/README.md b/README.md index 969d60bf7f170a0e2f5b8826caae395b8a2a6dfc..9e3710dd456879e751e6c43214aa1e5081fd0240 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# ALP4 Tutorial-10 +# ALP4 Tutorial-11 This branch contains all materials for the 9th tutorial session. ## Agenda - Assignment's solution presentation -- Recap & Discussion: IPC, RPC, HTTP(S) +- Recap & Discussion: P2P, Cloud Computing - Q&A diff --git a/exercises/hello-html/index.html b/exercises/hello-html/index.html deleted file mode 100644 index 5c952d4a4a7b8ef9fc20359c491290db3b855c91..0000000000000000000000000000000000000000 --- a/exercises/hello-html/index.html +++ /dev/null @@ -1,10 +0,0 @@ -<!-- index.html --> -<html> - <body> - <div id="app"></div> - <script type="text/javascript"> - const app = document.getElementById('app'); - app.innerHTML = '<h1>Hello World!</h1>'; - </script> - </body> -</html> diff --git a/slides/images/cover.jpg b/slides/images/cover.jpg index 59a5db4c02e8022a041c4d7002e273b34d2cd360..c7fd296a000399b9687fbd71842ff9b600aca1b4 100644 Binary files a/slides/images/cover.jpg and b/slides/images/cover.jpg differ diff --git a/slides/images/dom-to-ui.png b/slides/images/dom-to-ui.png deleted file mode 100644 index 73e8367a733a8243011d350636b73cb62ab5798b..0000000000000000000000000000000000000000 Binary files a/slides/images/dom-to-ui.png and /dev/null differ diff --git a/slides/images/html-to-dom.png b/slides/images/html-to-dom.png deleted file mode 100644 index 2b6aebc8e71b822046308bc2dbf309cedba83791..0000000000000000000000000000000000000000 Binary files a/slides/images/html-to-dom.png and /dev/null differ diff --git a/slides/images/http-header.png b/slides/images/http-header.png deleted file mode 100644 index 993d1ba5d0db9fa1b3370fe33c4b09510419b933..0000000000000000000000000000000000000000 Binary files a/slides/images/http-header.png and /dev/null differ diff --git a/slides/images/https-detailed.webp b/slides/images/https-detailed.webp deleted file mode 100644 index 92cbce8fa5961bc8ef07099f98bdc1d783002b64..0000000000000000000000000000000000000000 Binary files a/slides/images/https-detailed.webp and /dev/null differ diff --git a/slides/images/reactjs.webp b/slides/images/reactjs.webp deleted file mode 100644 index a57a53ab75449b02e5d3a361cd3bb8282c8ea04e..0000000000000000000000000000000000000000 Binary files a/slides/images/reactjs.webp and /dev/null differ diff --git a/slides/package-lock.json b/slides/package-lock.json index e402bf49404386e68d1a5de8739423bbdf8fe564..87d8bb0493ff46e636eb7e34c4b5bd1230637a2d 100644 --- a/slides/package-lock.json +++ b/slides/package-lock.json @@ -39,9 +39,9 @@ } }, "node_modules/@antfu/utils": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.4.tgz", - "integrity": "sha512-qe8Nmh9rYI/HIspLSTwtbMFPj6dISG6+dJnOguTlPNXtCvS2uezdxscVBb7/3DrmNbQK49TDqpkSQ1chbRGdpQ==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.5.tgz", + "integrity": "sha512-dlR6LdS+0SzOAPx/TPRhnoi7hE251OVeT2Snw0RguNbBSbjUHdWr0l3vcUUDg26rEysT89kCbtw1lVorBXLLCg==", "funding": { "url": "https://github.com/sponsors/antfu" } @@ -58,33 +58,33 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.6.tgz", + "integrity": "sha512-29tfsWTq2Ftu7MXmimyC0C5FDZv5DYxOZkh3XD3+QW4V/BYuv/LyEsjj3c0hqedEaDt6DBfDvexMKU8YevdqFg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.6.tgz", + "integrity": "sha512-HPIyDa6n+HKw5dEuway3vVAhBboYCtREBMp+IWeseZy6TFtzn6MHkCH2KKYUOC/vKKwgSMHQW4htBOrmuRPXfw==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.5", "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", + "@babel/helpers": "^7.22.6", + "@babel/parser": "^7.22.6", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", + "@babel/traverse": "^7.22.6", "@babel/types": "^7.22.5", + "@nicolo-ribaudo/semver-v6": "^6.3.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.2" }, "engines": { "node": ">=6.9.0" @@ -120,15 +120,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.6.tgz", + "integrity": "sha512-534sYEqWD9VfUm3IPn2SLcH4Q3P86XL+QvqdC7ZsFrzyyPF3T4XGiVghF6PTYNdWg6pXuoqXxNQAhbYeEInTzA==", "dependencies": { - "@babel/compat-data": "^7.22.5", + "@babel/compat-data": "^7.22.6", "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "@nicolo-ribaudo/semver-v6": "^6.3.3", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1" }, "engines": { "node": ">=6.9.0" @@ -138,9 +138,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.6.tgz", + "integrity": "sha512-iwdzgtSiBxF6ni6mzVnZCF3xt5qE6cEA0J7nFt8QOAWZ0zjCFceEgpn3vtb2V7WFR6QzP2jmIFOHMTRo7eNJjQ==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", @@ -149,8 +149,8 @@ "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-replace-supers": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" + "@babel/helper-split-export-declaration": "^7.22.6", + "@nicolo-ribaudo/semver-v6": "^6.3.3" }, "engines": { "node": ">=6.9.0" @@ -288,9 +288,9 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", - "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { "@babel/types": "^7.22.5" }, @@ -323,12 +323,12 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", - "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", + "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", "dependencies": { "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", + "@babel/traverse": "^7.22.6", "@babel/types": "^7.22.5" }, "engines": { @@ -349,9 +349,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", - "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.6.tgz", + "integrity": "sha512-EIQu22vNkceq3LbjAq7knDf/UmtI2qbcNI8GRBlijez6TpQLvSodJPYfydQmNA5buwkxxxa/PVI44jjYZ+/cLw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -405,9 +405,9 @@ } }, "node_modules/@babel/standalone": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.22.5.tgz", - "integrity": "sha512-6Lwhzral4YDEbIM3dBC8/w0BMDvOosGBGaJWSORLkerx8byawkmwwzXKUB0jGlI1Zp90+cK2uyTl62UPtLbUjQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/standalone/-/standalone-7.22.6.tgz", + "integrity": "sha512-xVLT1r+JZMnvt47EmIr7cJb3xUDqHmyc/wr783/+Q+pLJfSVmV8bwwcSjXnqT4ajteUT0CufADWpcqRcwidL4w==", "optional": true, "engines": { "node": ">=6.9.0" @@ -427,17 +427,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.6.tgz", + "integrity": "sha512-53CijMvKlLIDlOTrdWiHileRddlIiwUIyCKqYa7lYnnPldXCG5dUSN38uT0cA6i7rHWNKJLH0VU/Kxdr1GzB3w==", "dependencies": { "@babel/code-frame": "^7.22.5", "@babel/generator": "^7.22.5", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.6", "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" @@ -934,6 +934,14 @@ "resolved": "https://registry.npmjs.org/@mdit-vue/types/-/types-0.12.0.tgz", "integrity": "sha512-mrC4y8n88BYvgcgzq9bvTlDgFyi2zuvzmPilRvRc3Uz1iIvq8mDhxJ0rHKFUNzPEScpDvJdIujqiDrulMqiudA==" }, + "node_modules/@nicolo-ribaudo/semver-v6": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz", + "integrity": "sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -994,39 +1002,6 @@ "node": "^14.18.0 || >=16.10.0" } }, - "node_modules/@nuxt/kit/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nuxt/kit/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@nuxt/kit/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, "node_modules/@nuxt/schema": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.6.1.tgz", @@ -1354,61 +1329,61 @@ "integrity": "sha512-4p9vcSmxAayx72yn70joFoL44c9MO/0+iVEBIQXe3v2h2SiAsEIo/G5v6ObFWvNKRFjbrVadNf9LqEEZeQPzdA==" }, "node_modules/@unhead/dom": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.28.tgz", - "integrity": "sha512-o5w3GUo1en9OWNHpUkrkZxmlx2Xf7q++VLb5Lm0MtbHYM578lWmB1zLfmJMN13kvaNKN8RUhTYG5WMtKMzDfGw==", + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/@unhead/dom/-/dom-1.1.30.tgz", + "integrity": "sha512-EvASOkk36lW5sRfIe+StCojpkPEExsQNt+cqcpdVr9iiRH54jziCDFxcLfjawc+jp4NO86KvmfHo86GIly3/SQ==", "dependencies": { - "@unhead/schema": "1.1.28", - "@unhead/shared": "1.1.28" + "@unhead/schema": "1.1.30", + "@unhead/shared": "1.1.30" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/schema": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.28.tgz", - "integrity": "sha512-KDAPSYcYZHC3ni3Hd3Ye/piBasaHa/uQWCLICOVADwKi1Pm6hhMxCCwpsPSJtfekN31kOvIA09vZv8roPwTthQ==", + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/@unhead/schema/-/schema-1.1.30.tgz", + "integrity": "sha512-lgz0aw+OP1PlKHBhNWAVabV2iAHBhSXCt3Ynswu0m++MwJxOVXizYJRZOVKK7Zx3u7vwPRV/nweYc6rmNHv5gA==", "dependencies": { "hookable": "^5.5.3", - "zhead": "^2.0.7" + "zhead": "^2.0.9" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/shared": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.28.tgz", - "integrity": "sha512-mC0k7a4Cb4vKsASjD/Ws5hrRdZfTf5uapRF+1ekVqeyo1VVISoXNB6CdxTjHgqi8vKQr5wmvoSvEt1fOoU1PQQ==", + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/@unhead/shared/-/shared-1.1.30.tgz", + "integrity": "sha512-OPS+d4SZuYSWquQZVLfbyFYggdqKz8DtcdHXObRoKWnosrgVPyGJoOaFnjfkYYuvU6BFYnUtnZNMRQVUjmER1g==", "dependencies": { - "@unhead/schema": "1.1.28" + "@unhead/schema": "1.1.30" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/ssr": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.28.tgz", - "integrity": "sha512-gnSVyvpx/R1byQ8mArh2QRI1PdQ9mlRvtnt1Qiy7JUrtkJeqf/Hfn85fwZ+RhHRSDBPhMl7qD24FSlz5EwA9Zw==", + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/@unhead/ssr/-/ssr-1.1.30.tgz", + "integrity": "sha512-0XBgoPZoPjLCEQpGc/PhTYPvXEcWufcpcHWo6jxRham3VCoQN5RoSzFNGPEtd4ZhMMVRMQLJ7yPDGfFXtu78Pg==", "dependencies": { - "@unhead/schema": "1.1.28", - "@unhead/shared": "1.1.28" + "@unhead/schema": "1.1.30", + "@unhead/shared": "1.1.30" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" } }, "node_modules/@unhead/vue": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.28.tgz", - "integrity": "sha512-n/4UusPccA0eyLxeinEagfm7hswzg4Uud+dYNlPByHHThCBobYcHjhnOOeS9YvkMGbdZpG1l7k/kywQIcwYqgg==", + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-1.1.30.tgz", + "integrity": "sha512-jWDfYDjiNj8a8GTQoYeJrpKisI7YKIWwuMP1IREKa4cx41oCsbCKUDjomjnpmdBcpqvb/Kw32Tm+EMcuE/CYkA==", "dependencies": { - "@unhead/schema": "1.1.28", - "@unhead/shared": "1.1.28", + "@unhead/schema": "1.1.30", + "@unhead/shared": "1.1.30", "hookable": "^5.5.3", - "unhead": "1.1.28" + "unhead": "1.1.30" }, "funding": { "url": "https://github.com/sponsors/harlan-zw" @@ -1739,21 +1714,21 @@ } }, "node_modules/@vue/babel-helper-vue-transform-on": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.4.tgz", - "integrity": "sha512-i/+rx6NIx1SeqA6sJJCv0tRPAU/F6lOnxjV9v1DJVGT7rH0CWOluaYfb+ifODVHFj2cEw85X2U6fU0n466ng0Q==" + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.1.5.tgz", + "integrity": "sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==" }, "node_modules/@vue/babel-plugin-jsx": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.4.tgz", - "integrity": "sha512-/F9YSGaxL53aBUwowjtALVBH+HXjXbsDt41NaVHc10HREkutCt51Wukm6sbgrq2sp34Mne+PCvOrjJjM2yLoWA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.1.5.tgz", + "integrity": "sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==", "dependencies": { "@babel/helper-module-imports": "^7.22.5", "@babel/plugin-syntax-jsx": "^7.22.5", "@babel/template": "^7.22.5", "@babel/traverse": "^7.22.5", "@babel/types": "^7.22.5", - "@vue/babel-helper-vue-transform-on": "^1.1.4", + "@vue/babel-helper-vue-transform-on": "^1.1.5", "camelcase": "^6.3.0", "html-tags": "^3.3.1", "svg-tags": "^1.0.0" @@ -2068,9 +2043,9 @@ } }, "node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "bin": { "acorn": "bin/acorn" }, @@ -2279,9 +2254,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001509", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001509.tgz", - "integrity": "sha512-2uDDk+TRiTX5hMcUYT/7CSyzMZxjfGu0vAUjS2g0LSD8UoXOv0LtpH4LxGMemsiPq6LCVIUjNwVM0erkOkGCDA==", + "version": "1.0.30001512", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001512.tgz", + "integrity": "sha512-2S9nK0G/mE+jasCUsMPlARhRCts1ebcp2Ji8Y8PWi4NDE1iRdLCnEPHkEfeBrGC45L4isBx5ur3IQ6yTE2mRZw==", "funding": [ { "type": "opencollective", @@ -2958,9 +2933,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", - "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==" + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" }, "node_modules/debug": { "version": "4.3.4", @@ -3225,9 +3200,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.442", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.442.tgz", - "integrity": "sha512-RkrZF//Ya+0aJq2NM3OdisNh5ZodZq1rdXOS96G8DdDgpDKqKE81yTbbQ3F/4CKm1JBPsGu1Lp/akkna2xO06Q==" + "version": "1.4.450", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.450.tgz", + "integrity": "sha512-BLG5HxSELlrMx7dJ2s+8SFlsCtJp37Zpk2VAxyC6CZtbc+9AJeZHfYHbrlSgdXp6saQ8StMqOTEDaBKgA7u1sw==" }, "node_modules/elkjs": { "version": "0.8.2", @@ -3396,9 +3371,9 @@ } }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -3681,9 +3656,9 @@ } }, "node_modules/globby": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.0.tgz", - "integrity": "sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.1.tgz", + "integrity": "sha512-DPCBxctI7dN4EeIqjW2KGqgdcUMbrhJ9AzON+PlxCtvppWhubTLD4+a0GFxiym14ZvacUydTPjLPc2DlKz7EIg==", "optional": true, "dependencies": { "dir-glob": "^3.0.1", @@ -4044,9 +4019,9 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz", + "integrity": "sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==", "bin": { "jiti": "bin/jiti.js" } @@ -4282,11 +4257,11 @@ } }, "node_modules/magic-string": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz", - "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==", + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" @@ -4389,9 +4364,9 @@ } }, "node_modules/mermaid": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.2.3.tgz", - "integrity": "sha512-cMVE5s9PlQvOwfORkyVpr5beMsLdInrycAosdr+tpZ0WFjG4RJ/bUHST7aTgHNJbujHkdBRAm+N50P3puQOfPw==", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.2.4.tgz", + "integrity": "sha512-zHGjEI7lBvWZX+PQYmlhSA2p40OzW6QbGodTCSzDeVpqaTnyAC+2sRGqrpXO+uQk3CnoeClHQPraQUMStdqy2g==", "dependencies": { "@braintree/sanitize-url": "^6.0.2", "cytoscape": "^3.23.0", @@ -5547,9 +5522,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "3.25.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz", - "integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.26.1.tgz", + "integrity": "sha512-I5gJCSpSMr3U9wv4D5YA8g7w7cj3eaSDeo7t+JcaFQOmoOUBgu4K9iMp8k3EZnwbJrjQxUMSKxMyB8qEQzzaSg==", "bin": { "rollup": "dist/bin/rollup" }, @@ -5643,13 +5618,38 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -5971,13 +5971,13 @@ } }, "node_modules/unhead": { - "version": "1.1.28", - "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.28.tgz", - "integrity": "sha512-lJqXq5YMAD3p+Nhnvb7fNJwkU91kJNhrnZNcEuAlaTB+0L4es69UvMzekT/wvoE7pde4Yxs0upcTyL4BBz4vQw==", + "version": "1.1.30", + "resolved": "https://registry.npmjs.org/unhead/-/unhead-1.1.30.tgz", + "integrity": "sha512-25N/P1GnnC8EYCDerzE0hl2nOdRqS1NOFh1STEyKWRo/Bi5dXn8Z2NTaqzkbr5ExJTZEAiDfZ+eALvMTmvlXlA==", "dependencies": { - "@unhead/dom": "1.1.28", - "@unhead/schema": "1.1.28", - "@unhead/shared": "1.1.28", + "@unhead/dom": "1.1.30", + "@unhead/schema": "1.1.30", + "@unhead/shared": "1.1.30", "hookable": "^5.5.3" }, "funding": { @@ -5985,14 +5985,14 @@ } }, "node_modules/unimport": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.0.11.tgz", - "integrity": "sha512-UaaLu7TiqiEwjm5a9FGsL8RL87U65wyr1jBeIAAvLChgJZRMTTkknU9bkWjBsVGutXLT2Yq8/dPyWXSC3/ELRg==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/unimport/-/unimport-3.0.14.tgz", + "integrity": "sha512-67Rh/sGpEuVqdHWkXaZ6NOq+I7sKt86o+DUtKeGB6dh4Hk1A8AQrzyVGg2+LaVEYotStH7HwvV9YSaRjyT7Uqg==", "optional": true, "dependencies": { "@rollup/pluginutils": "^5.0.2", "escape-string-regexp": "^5.0.0", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "local-pkg": "^0.4.3", "magic-string": "^0.30.0", "mlly": "^1.4.0", @@ -6085,11 +6085,11 @@ } }, "node_modules/unplugin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.3.1.tgz", - "integrity": "sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.3.2.tgz", + "integrity": "sha512-Lh7/2SryjXe/IyWqx9K7IKwuKhuOFZEhotiBquOODsv2IVyDkI9lv/XhgfjdXf/xdbv32txmnBNnC/JVTDJlsA==", "dependencies": { - "acorn": "^8.8.2", + "acorn": "^8.9.0", "chokidar": "^3.5.3", "webpack-sources": "^3.2.3", "webpack-virtual-modules": "^0.5.0" @@ -6317,9 +6317,9 @@ } }, "node_modules/vite-plugin-inspect": { - "version": "0.7.30", - "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.7.30.tgz", - "integrity": "sha512-4z3bxULL9KGsSu2Gt+Z/lYQB2APpODG+2eHDGWK9NE4IGnwKfbz0lzJqVJGFtLGhvdwzGjt01aPgpMLYb/bibw==", + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.7.32.tgz", + "integrity": "sha512-TqRLHwOM3FTJPOGCCHJmub4SVVogSjZ9LSDo1Q6WeN2Zvc7HB7tr7cqYlAyStXCI90KvVnb1BRwI22+HXlghXQ==", "dependencies": { "@antfu/utils": "^0.7.4", "@rollup/pluginutils": "^5.0.2", @@ -6487,9 +6487,9 @@ } }, "node_modules/vue-router": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.2.tgz", - "integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.3.tgz", + "integrity": "sha512-ynQ/edCZNUC/9koONOSgxGJbEBXZ1nUA0lKI3xTiOd3Ywe4QRCf2q8pGCG1v5ovdzPggoq3M09FxNCZTM9pZfw==", "dependencies": { "@vue/devtools-api": "^6.5.0" }, @@ -6738,9 +6738,9 @@ } }, "node_modules/zhead": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.0.7.tgz", - "integrity": "sha512-q9iCCXBWndfYNMGCN7S970+e3ILAPzmX78Skblx7+SGlo6x6SXW0GJ5mJzigYsq2mkHCGqEUhe0QGDEDZauw8g==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/zhead/-/zhead-2.0.9.tgz", + "integrity": "sha512-Y3g6EegQc6PVrYXPq2OS7/s27UGVS5Y6NY6SY3XGH4Hg+yQWbQTtWsjCgmpR8kZnYrv8auB54sz+x5FEDrvqzQ==", "funding": { "url": "https://github.com/sponsors/harlan-zw" } diff --git a/slides/pages/qa.md b/slides/pages/qa.md index 61e7178021255f9b3c4f6c4c3f268b7ee146cd14..e8db433e8d1713d6f4442a8ef59a22f086a7d91c 100644 --- a/slides/pages/qa.md +++ b/slides/pages/qa.md @@ -7,7 +7,12 @@ title: Q&A Any questions about: - Eighth Assignment Sheet +- Ninth Assignment Sheet - Topics from the lectures - Organisation <br/> + +## Resources + +- [P2P Network](https://www.enjoyalgorithms.com/blog/peer-to-peer-networks) diff --git a/slides/pages/recap.md b/slides/pages/recap.md index 41b48fea6741cef052d4993717f45c774307e3bd..65dab975ca3618291d304db43c955a3ea81ceeda 100644 --- a/slides/pages/recap.md +++ b/slides/pages/recap.md @@ -1,209 +1,43 @@ --- -title: Agenda +title: Web Radio Server in Java --- -# Recaps & Discussion +# Web Radio & Chat Room Server/Client in Java -Discuss the following topics and explain those concepts in your own words to your teammates: -<br/> - -- What is IPC? -- What is RPC? -- What are the differences between RPC and IPC? -- What roles do protocols play in IPC/RPC? -- What are common protocols used in IPC/RPC? -- What are the external data representations used in IPC/RPC? -- What are marshalling and unmarshalling? - ---- -title: HTTP(s) I -layout: two-cols ---- - -# HTTP - -**HTTP** stands for **Hypertext Transfer Protocol**. - -It is the protocol that enables communication between different systems, transferring information and data over a network. - -It is a: - -- Text-based protocol -- Stateless protocol -- Application layer protocol - -It is used for: - -- Client-server model -- Request-response model -- Distributed, collaborative, hypermedia information system - -::right:: - -<div class="container flex justify-center"> - <img src="/images/http-header.png" class="block w-md"/> -</div> +A possible approach: +- Use different threads to handle different clients as well as different tasks +- Use different ports to handle different services --- -title: HTTP(s) II +title: P2P --- -### A typical HTTP request - -<br/> - -```http -GET / HTTP/1.1 -Host: www.example.com -User-Agent: Mozilla/5.0 -Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 -Accept-Language: en-GB,en;q=0.5 -Accept-Encoding: gzip, deflate, br -Connection: keep-alive -``` - ---- -title: HTTP(s) III ---- - -### A typical HTTP response +# Recaps & Discussion - P2P +Discuss the following topics and explain those concepts in your own words to your teammates: <br/> -```http -HTTP/1.1 200 OK -Date: Mon, 23 May 2005 22:38:34 GMT -Content-Type: text/html; charset=UTF-8 -Content-Length: 155 -Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT -Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) -ETag: "3f80f-1b6-3e1cb03b" -Accept-Ranges: bytes -Connection: close - -<html> - <head> - <title>An Example Page</title> - </head> - <body> - <p>Hello World, this is a very simple HTML document.</p> - </body> -</html> -``` - ---- -title: HTTP(s) IV ---- - -### HTTPS - -**Hypertext Transfer Protocol Secure (HTTPS)** is an extension of the HTTP protocol. - -**HTTP = HTTP + TLS/SSL** - -<div class="container flex justify-center"> - <img src="/images/https-detailed.webp" class="block w-md"/> -</div> - ---- -title: HTTP(s) V -layout: center ---- - -- What are the differences between HTTP and HTTPS? -- What are the benefits/drawbacks of using HTTPS? +- What is peer-to-peer (P2P) architecture? +- What are the use cases/examples of P2P? +- What are the different types of P2P network? +- What are the advantages and disadvantages of these type of P2P networks? +- What are the advantages and disadvantages of P2P itself? --- -title: Foundation of Web Development -layout: center +title: Cloud Computing --- -# Foundations of Web Developments - -Mostly Frontend here - ---- -title: Web Development I ---- - -## Rendering User Interfaces - -When a user visits a web page, the server returns an HTML file to the browser that may look like this: - -<div class="container flex justify-center"> - <img src="/images/html-to-dom.png" class="block w-lg"/> -</div> - -The browser then reads the HTML and constructs the Document Object Model (DOM). - ---- -title: Web Development II ---- - -## What is DOM? - -The DOM is an object representation of the HTML elements. - -It acts as a bridge between your code and the user interface, and has a tree-like structure with parent and child relationships. - -<div class="container flex justify-center"> - <img src="/images/dom-to-ui.png" class="block w-lg"/> -</div> - ---- -title: Web Development III ---- - -## DOM Manipulation - -The DOM can be manipulated using JavaScript. - -```html -<!-- index.html --> -<html> - <body> - <div id="app"></div> - <script type="text/javascript"> - const app = document.getElementById('app'); - app.innerHTML = '<h1>Hello World!</h1>'; - </script> - </body> -</html> -``` - -See live demo. - ---- -title: Web Development IV ---- - -## Too much DOM manipulation? - -**Use a framework!** - -<div class="container flex justify-left"> - <img src="/images/reactjs.webp" class="block w-sm"/> -</div> +# Cloud Computing +Discuss the following topics and explain those concepts in your own words to your teammates: <br/> -- [React](https://react.dev/) is a JavaScript library for building user interfaces -- Write declarative code to describe the UI -- The framework will handle DOM manipulation for you -- Organize your code into reusable components -- Alternative: [Vue.js](https://vuejs.org/), [Angular](https://angular.io/), etc. - ---- -title: Web Development V ---- - -## Useful Resources - -<br/> +- What is cloud computing? +- What are the **service models** of cloud computing? +- What are the **deployment models** of cloud computing? +- What are the key technologies involved in cloud computing? -- [Mozilla - Learn web development](https://developer.mozilla.org/en-US/docs/Learn) -- [The Modern JavaScript Tutorial](https://javascript.info/) -- [Learn React](https://react.dev/learn) -- [Learn CSS](https://web.dev/learn/css/) -- **Don't want to configure your own local development environment?** Try [CodeSandbox!](https://codesandbox.io/) +<!-- <div class="container flex justify-center"> --> +<!-- <img src="/images/http-header.png" class="block w-md"/> --> +<!-- </div> --> diff --git a/slides/slides.md b/slides/slides.md index 63dd7f7bdfa5d25a2a67d889ebf9bc6da94332a0..5381f2179e10265bd4ebccab6d867fe4109721f8 100644 --- a/slides/slides.md +++ b/slides/slides.md @@ -17,7 +17,7 @@ css: unocss background: /images/cover.jpg --- -# ALP4 Tutorial 10 +# ALP4 Tutorial 11 ## Chao Zhan