diff --git a/slow_react/.gitignore b/slow_react/.gitignore deleted file mode 100644 index a547bf3..0000000 --- a/slow_react/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/slow_react/index.html b/slow_react/index.html deleted file mode 100644 index e0d1c84..0000000 --- a/slow_react/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Vite + React + TS - - -
- - - diff --git a/slow_react/package.json b/slow_react/package.json deleted file mode 100644 index 072cf86..0000000 --- a/slow_react/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "doordesk", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite --host", - "build": "tsc && vite build", - "preview": "vite preview" - }, - "dependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-markdown": "^8.0.7", - "react-router-dom": "^6.13.0", - "react-window": "^1.8.9", - "rehype-raw": "^6.1.1" - }, - "devDependencies": { - "@types/react": "^18.2.12", - "@types/react-dom": "^18.2.5", - "@vitejs/plugin-react-swc": "^3.3.2", - "typescript": "^4.9.5", - "vite": "^4.3.9" - } -} diff --git a/slow_react/pnpm-lock.yaml b/slow_react/pnpm-lock.yaml deleted file mode 100644 index a36f2ca..0000000 --- a/slow_react/pnpm-lock.yaml +++ /dev/null @@ -1,1170 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - react: - specifier: ^18.2.0 - version: 18.2.0 - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-markdown: - specifier: ^8.0.7 - version: 8.0.7(@types/react@18.2.12)(react@18.2.0) - react-router-dom: - specifier: ^6.13.0 - version: 6.13.0(react-dom@18.2.0)(react@18.2.0) - react-window: - specifier: ^1.8.9 - version: 1.8.9(react-dom@18.2.0)(react@18.2.0) - rehype-raw: - specifier: ^6.1.1 - version: 6.1.1 - -devDependencies: - '@types/react': - specifier: ^18.2.12 - version: 18.2.12 - '@types/react-dom': - specifier: ^18.2.5 - version: 18.2.5 - '@vitejs/plugin-react-swc': - specifier: ^3.3.2 - version: 3.3.2(vite@4.3.9) - typescript: - specifier: ^4.9.5 - version: 4.9.5 - vite: - specifier: ^4.3.9 - version: 4.3.9 - -packages: - - /@babel/runtime@7.22.5: - resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.11 - dev: false - - /@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@remix-run/router@1.6.3: - resolution: {integrity: sha512-EXJysQ7J3veRECd0kZFQwYYd5sJMcq2O/m60zu1W2l3oVQ9xtub8jTOtYRE0+M2iomyG/W3Ps7+vp2kna0C27Q==} - engines: {node: '>=14'} - dev: false - - /@swc/core-darwin-arm64@1.3.64: - resolution: {integrity: sha512-gSPld6wxZBZoEvZXWmNfd+eJGlGvrEXmhMBCUwSccpuMa0KqK7F6AAZVu7kFkmlXPq2kS8owjk6/VXnVBmm5Vw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-x64@1.3.64: - resolution: {integrity: sha512-SJd1pr+U2pz5ZVv5BL36CN879Pn1V0014uVNlB+6yNh3e8T0fjUbtRJcbFiBB+OeYuJ1UNUeslaRJtKJNtMH7A==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm-gnueabihf@1.3.64: - resolution: {integrity: sha512-XE60bZS+qO+d8IQYAayhn3TRqyzVmQeOsX2B1yUHuKZU3Zb/mt/cmD/HLzZZW7J3z19kYf2na7Hvmnt3amUGoA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu@1.3.64: - resolution: {integrity: sha512-+jcUua4cYLRMqDicv+4AaTZUGgYWXkXVI9AzaAgfkMNLU2TMXwuYXopxk1giAMop88+ovzYIqrxErRdu70CgtQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl@1.3.64: - resolution: {integrity: sha512-50MI8NFYUKhLncqY2piM/XOnNqZT6zY2ZoNOFsy63/T2gAYy1ts4mF4YUEkg4XOA2zhue1JSLZBUrHQXbgMYUQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.3.64: - resolution: {integrity: sha512-bT8seQ41Q4J2JDgn2JpFCGNehGAIilAkZ476gEaKKroEWepBhkD0K1MspSSVYSJhLSGbBVSaadUEiBPxWgu1Rw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.3.64: - resolution: {integrity: sha512-sJgh3TXCDOEq/Au4XLAgNqy4rVcLeywQBoftnV3rcvX1/u9OCSRzgKLgYc5d1pEN5AMJV1l4u26kbGlQuZ+yRw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.3.64: - resolution: {integrity: sha512-zWIy+mAWDjtJjl4e4mmhQL7g9KbkOwcWbeoIk4C6NT4VpjnjdX1pMml/Ez2sF5J5cGBwu7B1ePfTe/kAE6G36Q==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc@1.3.64: - resolution: {integrity: sha512-6HMiuUeSMpTUAimb1E+gUNjy8m211oAzw+wjU8oOdA6iihWaLBz4TOhU9IaKZPPjqEcYGwqaT3tj5b5+mxde6Q==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc@1.3.64: - resolution: {integrity: sha512-c8Al0JJfmgnO9sg6w34PICibqI4p7iXywo+wOxjY88oFwMcfV5rGaif1Fe3RqxJP/1WtUV7lYuKKZrneMXtyLA==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core@1.3.64: - resolution: {integrity: sha512-be1dk2pfjzBjFp/+p47/wvOAm7KpEtsi7hqI3ofox6pK3hBJChHgVTLVV9xqZm7CnYdyYYw3Z78hH6lrwutxXQ==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.64 - '@swc/core-darwin-x64': 1.3.64 - '@swc/core-linux-arm-gnueabihf': 1.3.64 - '@swc/core-linux-arm64-gnu': 1.3.64 - '@swc/core-linux-arm64-musl': 1.3.64 - '@swc/core-linux-x64-gnu': 1.3.64 - '@swc/core-linux-x64-musl': 1.3.64 - '@swc/core-win32-arm64-msvc': 1.3.64 - '@swc/core-win32-ia32-msvc': 1.3.64 - '@swc/core-win32-x64-msvc': 1.3.64 - dev: true - - /@types/debug@4.1.8: - resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} - dependencies: - '@types/ms': 0.7.31 - dev: false - - /@types/hast@2.3.4: - resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /@types/mdast@3.0.11: - resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /@types/ms@0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} - dev: false - - /@types/parse5@6.0.3: - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - dev: false - - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - - /@types/react-dom@18.2.5: - resolution: {integrity: sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ==} - dependencies: - '@types/react': 18.2.12 - dev: true - - /@types/react@18.2.12: - resolution: {integrity: sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 - - /@types/scheduler@0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - - /@types/unist@2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - dev: false - - /@vitejs/plugin-react-swc@3.3.2(vite@4.3.9): - resolution: {integrity: sha512-VJFWY5sfoZerQRvJrh518h3AcQt6f/yTuWn4/TRB+dqmYU0NX1qz7qM5Wfd+gOQqUzQW4gxKqKN3KpE/P3+zrA==} - peerDependencies: - vite: ^4 - dependencies: - '@swc/core': 1.3.64 - vite: 4.3.9 - transitivePeerDependencies: - - '@swc/helpers' - dev: true - - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: false - - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - dev: false - - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - dev: false - - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: false - - /decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - dependencies: - character-entities: 2.0.2 - dev: false - - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: false - - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} - engines: {node: '>=0.3.1'} - dev: false - - /esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.19 - '@esbuild/android-arm64': 0.17.19 - '@esbuild/android-x64': 0.17.19 - '@esbuild/darwin-arm64': 0.17.19 - '@esbuild/darwin-x64': 0.17.19 - '@esbuild/freebsd-arm64': 0.17.19 - '@esbuild/freebsd-x64': 0.17.19 - '@esbuild/linux-arm': 0.17.19 - '@esbuild/linux-arm64': 0.17.19 - '@esbuild/linux-ia32': 0.17.19 - '@esbuild/linux-loong64': 0.17.19 - '@esbuild/linux-mips64el': 0.17.19 - '@esbuild/linux-ppc64': 0.17.19 - '@esbuild/linux-riscv64': 0.17.19 - '@esbuild/linux-s390x': 0.17.19 - '@esbuild/linux-x64': 0.17.19 - '@esbuild/netbsd-x64': 0.17.19 - '@esbuild/openbsd-x64': 0.17.19 - '@esbuild/sunos-x64': 0.17.19 - '@esbuild/win32-arm64': 0.17.19 - '@esbuild/win32-ia32': 0.17.19 - '@esbuild/win32-x64': 0.17.19 - dev: true - - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false - - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /hast-util-from-parse5@7.1.2: - resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} - dependencies: - '@types/hast': 2.3.4 - '@types/unist': 2.0.6 - hastscript: 7.2.0 - property-information: 6.2.0 - vfile: 5.3.7 - vfile-location: 4.1.0 - web-namespaces: 2.0.1 - dev: false - - /hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} - dependencies: - '@types/hast': 2.3.4 - dev: false - - /hast-util-raw@7.2.3: - resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} - dependencies: - '@types/hast': 2.3.4 - '@types/parse5': 6.0.3 - hast-util-from-parse5: 7.1.2 - hast-util-to-parse5: 7.1.0 - html-void-elements: 2.0.1 - parse5: 6.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false - - /hast-util-to-parse5@7.1.0: - resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} - dependencies: - '@types/hast': 2.3.4 - comma-separated-tokens: 2.0.3 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false - - /hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} - dev: false - - /hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} - dependencies: - '@types/hast': 2.3.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 3.1.1 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - dev: false - - /html-void-elements@2.0.1: - resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} - dev: false - - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: false - - /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - dev: false - - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - dev: false - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: false - - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: false - - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false - - /mdast-util-definitions@5.1.2: - resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} - dependencies: - '@types/mdast': 3.0.11 - '@types/unist': 2.0.6 - unist-util-visit: 4.1.2 - dev: false - - /mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - dependencies: - '@types/mdast': 3.0.11 - '@types/unist': 2.0.6 - decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-to-hast@12.3.0: - resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} - dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 - mdast-util-definitions: 5.1.2 - micromark-util-sanitize-uri: 1.2.0 - trim-lines: 3.0.1 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - dev: false - - /mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - dependencies: - '@types/mdast': 3.0.11 - dev: false - - /memoize-one@5.2.1: - resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - dev: false - - /micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - dependencies: - decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - dependencies: - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - dependencies: - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - dev: false - - /micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} - dev: false - - /micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - dependencies: - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - dependencies: - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - dev: false - - /micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - dev: false - - /micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - dependencies: - '@types/debug': 4.1.8 - debug: 4.3.4 - decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - dev: false - - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: false - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: false - - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: false - - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: false - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /postcss@8.4.24: - resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - dev: false - - /property-information@6.2.0: - resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} - dev: false - - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 - dev: false - - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: false - - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: false - - /react-markdown@8.0.7(@types/react@18.2.12)(react@18.2.0): - resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - dependencies: - '@types/hast': 2.3.4 - '@types/prop-types': 15.7.5 - '@types/react': 18.2.12 - '@types/unist': 2.0.6 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 2.0.1 - prop-types: 15.8.1 - property-information: 6.2.0 - react: 18.2.0 - react-is: 18.2.0 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.1 - unified: 10.1.2 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - transitivePeerDependencies: - - supports-color - dev: false - - /react-router-dom@6.13.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6Nqoqd7fgwxxVGdbiMHTpDHCYPq62d7Wk1Of7B82vH7ZPwwsRaIa22zRZKPPg413R5REVNiyuQPKDG1bubcOFA==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.6.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.13.0(react@18.2.0) - dev: false - - /react-router@6.13.0(react@18.2.0): - resolution: {integrity: sha512-Si6KnfEnJw7gUQkNa70dlpI1bul46FuSxX5t5WwlUBxE25DAz2BjVkwaK8Y2s242bQrZPXCpmwLPtIO5pv4tXg==} - engines: {node: '>=14'} - peerDependencies: - react: '>=16.8' - dependencies: - '@remix-run/router': 1.6.3 - react: 18.2.0 - dev: false - - /react-window@1.8.9(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+Eqx/fj1Aa5WnhRfj9dJg4VYATGwIUP2ItwItiJ6zboKWA6EX3lYDAXfGF2hyNqplEprhbtjbipiADEcwQ823Q==} - engines: {node: '>8.0.0'} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.22.5 - memoize-one: 5.2.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: false - - /rehype-raw@6.1.1: - resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} - dependencies: - '@types/hast': 2.3.4 - hast-util-raw: 7.2.3 - unified: 10.1.2 - dev: false - - /remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} - dependencies: - '@types/mdast': 3.0.11 - mdast-util-from-markdown: 1.3.1 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-rehype@10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} - dependencies: - '@types/hast': 2.3.4 - '@types/mdast': 3.0.11 - mdast-util-to-hast: 12.3.0 - unified: 10.1.2 - dev: false - - /rollup@3.25.1: - resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: false - - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - dev: false - - /style-to-object@0.4.1: - resolution: {integrity: sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==} - dependencies: - inline-style-parser: 0.1.1 - dev: false - - /trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - dev: false - - /trough@2.1.0: - resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} - dev: false - - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} - hasBin: true - dev: true - - /unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - dependencies: - '@types/unist': 2.0.6 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.1.0 - vfile: 5.3.7 - dev: false - - /unist-util-generated@2.0.1: - resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} - dev: false - - /unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-position@4.0.4: - resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - dependencies: - '@types/unist': 2.0.6 - dev: false - - /unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.2.1 - dev: false - - /unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - dev: false - - /uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - dequal: 2.0.3 - diff: 5.1.0 - kleur: 4.1.5 - sade: 1.8.1 - dev: false - - /vfile-location@4.1.0: - resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} - dependencies: - '@types/unist': 2.0.6 - vfile: 5.3.7 - dev: false - - /vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 3.0.3 - dev: false - - /vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - dev: false - - /vite@4.3.9: - resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.17.19 - postcss: 8.4.24 - rollup: 3.25.1 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - dev: false - - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - dev: false diff --git a/slow_react/public/bg.png b/slow_react/public/bg.png deleted file mode 100644 index 7c36f0c..0000000 Binary files a/slow_react/public/bg.png and /dev/null differ diff --git a/slow_react/public/blog/000000000-swim.html b/slow_react/public/blog/000000000-swim.html deleted file mode 100644 index 01cc813..0000000 --- a/slow_react/public/blog/000000000-swim.html +++ /dev/null @@ -1,158 +0,0 @@ -
-

- April 22, 1958
- 57 Perry Street
- New York City
-

-

Dear Hume,

-

- You ask advice: ah, what a very human and very dangerous thing to do! For to give advice - to a man who asks what to do with his life implies something very close to egomania. To - presume to point a man to the right and ultimate goal—to point with a trembling - finger in the RIGHT direction is something only a fool would take upon himself. -

-

-     I am not a fool, but I respect your sincerity in asking my - advice. I ask you though, in listening to what I say, to remember that all advice can - only be a product of the man who gives it. What is truth to one may be a disaster to - another. I do not see life through your eyes, nor you through mine. If I were to attempt - to give you - specific advice, it would be too much like the blind leading the blind. -

-

- - "To be, or not to be: that is the question: Whether 'tis nobler in the mind to - suffer the slings and arrows of outrageous fortune, or to take arms against a sea of - troubles..." - -
- (Shakespeare) -

-

- And indeed, that IS the question: whether to float with the tide, or to swim for a goal. - It is a choice we must all make consciously or unconsciously at one time in our lives. - So few people understand this! Think of any decision you've ever made which had a - bearing on your future: I may be wrong, but I don't see how it could have been anything - but a choice however indirect—between the two things I've mentioned: the floating - or the swimming. -

-

-     But why not float if you have no goal? That is another question. - It is unquestionably better to enjoy the floating than to swim in uncertainty. So how - does a man find a goal? Not a castle in the stars, but a real and tangible thing. How - can a man be sure he's not after the "big rock candy mountain," the enticing sugar-candy - goal that has little taste and no substance? -

-

-     The answer—and, in a sense, the tragedy of life—is - that we seek to understand the goal and not the man. We set up a goal which demands of - us certain things: and we do these things. We adjust to the demands of a concept which - CANNOT be valid. When you were young, let us say that you wanted to be a fireman. I feel - reasonably safe in saying that you no longer want to be a fireman. Why? Because your - perspective has changed. It's not the fireman who has changed, but you. Every man is the - sum total of his reactions to experience. As your experiences differ and multiply, you - become a different man, and hence your perspective changes. This goes on and on. Every - reaction is a learning process; every significant experience alters your perspective. -

-

-     So it would seem foolish, would it not, to adjust our lives to - the demands of a goal we see from a different angle every day? How could we ever hope to - accomplish anything other than galloping neurosis? -

-

-     The answer, then, must not deal with goals at all, or not with - tangible goals, anyway. It would take reams of paper to develop this subject to - fulfillment. God only knows how many books have been written on "the meaning of man" and - that sort of thing, and god only knows how many people have pondered the subject. (I use - the term "god only knows" purely as an expression.) There's very little sense in my - trying to give it up to you in the proverbial nutshell, because I'm the first to admit - my absolute lack of qualifications for reducing the meaning of life to one or two - paragraphs. -

-

-     I'm going to steer clear of the word "existentialism," but you - might keep it in mind as a key of sorts. You might also try something called - Being and Nothingness by Jean-Paul Sartre, and another little thing called - Existentialism: From Dostoyevsky to Sartre. These are merely suggestions. If - you're genuinely statisfied with what you are and what you're doing, then give those - books a wide berth. (Let sleeping dogs lie.) But back to the answer. As I said, to put - our faith in tangible goals would seem to be, at best, unwise. So we do not strive to be - firemen, we do not strive to be bankers, nor policemen, nor doctors. WE STRIVE TO BE - OURSELVES. -

-

-     But don't misunderstand me. I don't mean that we can't BE - firemen, bankers, or doctors—but that we must make the goal conform to the - individual, rather than make the individual conform to the goal. In every man, heredity - and environment have combined to produce a creature of certain abilities and - desires—including a deeply ingrained need to function in such a way that his life - will be MEANINGFUL. A man has to BE something; he has to matter. -

-

-     As I see it then, the formula runs something like this: a man - must choose a path which will let his ABILITIES function at maximum efficiency toward - the gratification of his DESIRES. In doing this, he is fulfilling a need (giving himself - identity by functioning in a set pattern toward a set goal) he avoids frustrating his - potential (choosing a path which puts no limit on his self-development), and he avoids - the terror of seeing his goal wilt or lose its charm as he draws closer to it (rather - than bending himself to meet the demands of that which he seeks, he has bent his goal to - conform to his own abilities and desires). -

-

-     In short, he has not dedicated his life to reaching a - pre-defined goal, but he has rather chosen a way of like he KNOWS he will enjoy. The - goal is absolutely secondary: it is the - functioning toward the goal which is important. And it seems almost ridiculous to - say that a man MUST function in a pattern of his own choosing; for to let another man - define your own goals is to give up one of the most meaningful aspects of life—the - definitive act of will which makes a man an individual. -

-

-     Let's assume that you think you have a choice of eight paths to - follow (all pre-defined paths, of course). And let's assume that you can't see any real - purpose in any of the eight. Then—and here is the essence of all I've - said—you MUST FIND A NINTH PATH. -

-

-     Naturally, it isn't as easy as it sounds. you've lived a - relatively narrow life, a vertical rather than a horizontal existence. So it isn't any - too difficult to understand why you seem to feel the way you do. But a man who - procrastinates in his CHOOSING will inevitably have his choice made for him by - circumstance. -

-

-     So if you now number yourself among the disenchanted, then you - have no choice but to accept things as they are, or to seriously seek something else. - But beware of looking for - goals: look for a way of life. Decide how you want to live and then see what you - can do to make a living WITHIN that way of life. But you say, "I don't know where to - look; I don't know what to look for." -

-

-     And there's the crux. Is it worth giving up what I have to look - for something better? I don't know—is it? Who can make that decision but you? But - even by DECIDING TO LOOK, you go a long way toward making the choice. -

-

-     If I don't call this to a halt, I'm going to find myself writing - a book. I hope it's not as confusing as it looks at first glance. Keep in mind, of - course, that this is MY WAY of looking at things. I happen to think that it's pretty - generally applicable, but you may not. Each of us has to create our own credo—this - merely happens to be mine. -

-

-     If any part of it doesn't seem to make sense, by all means call - it to my attention. I'm not trying to send you out "on the road" in search of Valhalla, - but merely pointing out that it is not necessary to accept the choices handed down to - you by life as you know it. There is more to it than that—no one HAS to do - something he doesn't want to do for the rest of his life. But then again, if that's what - you wind up doing, by all means convince yourself that you HAD to do it. You'll have - lots of company. -

-
-

    And that's it for now. Until I hear from you again, I remain,

-

- your friend...
- Hunter -

-
diff --git a/slow_react/public/blog/20220506-change.html b/slow_react/public/blog/20220506-change.html deleted file mode 100644 index 1f9158f..0000000 --- a/slow_react/public/blog/20220506-change.html +++ /dev/null @@ -1,54 +0,0 @@ -
-

May 06, 2022

-

Change

-

- "Life should not be a journey to the grave with the intention of arriving safely in - a pretty and well preserved body, but rather to skid in broadside in a cloud of - smoke, thoroughly used up, totally worn out, and loudly proclaiming "Wow! What a - Ride!" -
- (Hunter S.Thompson) -

-

-     There comes a time in one's life, perhaps multiple, when there - is an unquestionable need for change. Maybe you're not sure how, why, or where it came - from, or where even it is you're headed, or how to get there, but here you are taking - your first steps toward a new life. A journey into the unknown. I've just set out on one - of these journeys, and even as I sit here typing this now I can't help but feel a little - bit nervous, but even more excited. I have absolutely no idea where I'm headed to be - quite honest. But I know where I've been. -

-

-     Growing up I would always be taking things apart, I HAD to see - what was inside. What makes this thing, a thing. What makes it tick? Can it tick faster? - For no particular reason I just had to know every little detail about what made the - thing the thing that it was and why it did what it did. It's a gift and a curse of - sorts. Quickly this led to taking apart things of increasing complexity, our home - computer for instance. Luckily I was able to get it put back together before my parents - got home because it was made clear that this was not allowed, and the CPU didn't seem to - mind the sudden absence of thermal compound either. I must have been around 7 or 8 years - old at that time, and it still puzzles me just what is going on inside there. -

-

-     I have a better idea now, naturally I had to figure out just - what all those pieces were, what they did, and how they did it. What if I replaced some - of these parts with other parts? As I honed my web searching skills to try to answer the - seemingly endless hows and whys I ended up building myself a little hotrod computer and - then raced it against other peoples' computers because why not, right? And I actually - won! It was an overclocking contest called the winter suicides, a kind of computer drag - race. Highest CPU clock speed wins, you have to boot into Windows XP, open CPU-Z, and - take a screenshot. If it crashes immediately after that (and it did) it still counts. I - got some pretty weird looks from my father as I stuck my computer outside in the snow - but that was a small price to pay for the grand prize which was a RAM kit (2GB of DDR400 - I believe) and RAM cooler. -

-

-     After getting comfortable with hardware I started to study the - software side of things, I tried teaching myself C++ (and didn't get very far), I did - teach myself HTML and CSS, some JavaScript, and started playing around with Linux. It - took until only a year or two ago to finally be completely on Linux full time (gaming - holding me back), I even have a Linux phone now (Pinephone Pro). At this point I reached - high school and my attention moved from computers to cars. -

-

To be continued...

-
diff --git a/slow_react/public/blog/20220520-nvidia.html b/slow_react/public/blog/20220520-nvidia.html deleted file mode 100644 index 29824b8..0000000 --- a/slow_react/public/blog/20220520-nvidia.html +++ /dev/null @@ -1,13 +0,0 @@ -
-

May 20, 2022

-

It's about time, NVIDIA

-

   It's about time... NVIDIA has finally released and is starting to - support Open-source software with their new modules released recently for the Linux - kernel. NVIDIA historically has been seemingly against Linux/OSS for whatever reason. - This is a huge step forward both for end users and NVIDIA. -

-

- - NVIDIA open-gpu-kernel-modules on github. -

-
diff --git a/slow_react/public/blog/20220602-back.html b/slow_react/public/blog/20220602-back.html deleted file mode 100644 index dbb0ae7..0000000 --- a/slow_react/public/blog/20220602-back.html +++ /dev/null @@ -1,45 +0,0 @@ -
-

Jun 02, 2022

-

Back to School

-

Where the hell have I been!?

-

- Looking back at the past 5 weeks, it's impressive the amount of new things that have - been shoved in my face. A list I'll try to make contains: -

- -

- It doesn't seem like much at the time except chaos, but then about a week later it - finally sets in. After tomorrow we'll be halfway through the course and while I guess - you could say that it's half over, or that it signifies progress, I feel it's more like - being halfway up Mount Everest and looking—trying to squint through the clouds and - make out what looks like the peak. I don't see a peak and maybe it's because I'm - nearsighted but I can also tell you that if were to look down then I can't see where - I've started either! -

-

- It's been quite a ride and I hope to see it to the end. I don't have time to even think - about it further. It's where I perform my best though, on my heels. Probably by - design... -

-

After?

-

- I would like to use these skills to expand on some of the class projects I've worked on - and I have some other ideas using language processing I think would be fun to play with. - I think it would be fun to create an internet chat bot, we'll start with text but if - speech recognition is practical then I may add and play with that too. I would also like - to make some sort of "Propaganda Detector" -

-
diff --git a/slow_react/public/blog/20220701-progress.html b/slow_react/public/blog/20220701-progress.html deleted file mode 100644 index bbe02ef..0000000 --- a/slow_react/public/blog/20220701-progress.html +++ /dev/null @@ -1,96 +0,0 @@ -
-

Jul 01, 2022

-

It's a post about nothing!

-

The progress update

-

- -

-

Bots

-

- After finding a number of ways not to begin the project formerly known as my capstone, - I've finally settled on a - dataset. - The project is about detecting bots, starting with twitter. I've - studied a - few - different - methods of bot detection and particularly like the - DeBot and - BotWalk methods and think I will try to mimic them, - in that order. -

-

- Long story short, DeBot uses a fancy method of time correlation to group accounts - together based on their posting habits. By identifying accounts that all have identical - posting habits that are beyond what a human could do by coincidence, this is a great - first step to identifying an inital group of seed bots. This can then be expanded by - using BotWalk's method of checking all the followers of the bot accounts and comparing - anomalous behavior to separate humans from non-humans. Rinse and repeat. I'll begin this - on twitter but hope to make it platform independent. -

-

The Real Capstone

-

- The bot project is too much to complete in this short amount of time, so instead I'm - working with a - small dataset - containing info about cars with some specs and I'll predict MPG. The problem itself for - me is trivial from past study/experience as an auto mechanic so I should have a nice - playground to focus completely on modeling. It's a very small data set too at < 400 - lines, I should be able to test multiple models in depth very quickly. It may or may not - be interesting, expect a write-up anyway. -

-

Cartman

-

- Well I guess I've adopted an 8 year old. Based on - this project - I've trained a chat bot with the personality of Eric Cartman. He's a feature of my - Discord bot living on a Raspberry Pi 4B, which I would say is probably the slowest - computer you would ever want to run something like this on. It takes a somewhat - reasonable amount of time to respond, almost feeling human if you make it think a bit. - The project uses PyTorch to train the model. I'd like - to re-create it using TensorFlow as an - exercise to understand each one better, but that's a project for another night. It also - only responds to one line at a time so it can't carry a conversation with context, - yet... -

-

Website

-

- I never thought I'd end up having a blog. I had no plans at all actually when I set up - this server, just to host a silly page that I would change from time to time whenever I - was bored. I've been looking at - Hugo as a way to organize what is now just a list of - divs in a single html file slowly growing out of control. Basically you just dump each - post into its own file, create a template of how to render them, and let it do its - thing. I should be able to create a template that recreates exactly what you see right - now, which is beginning to grow on me. -

-

- If you haven't noticed yet, (and I don't blame you if you haven't because only a handful - of people even visit this page) each time there is an update there is a completely new - background image, color scheme, a whole new theme. This is because this page is a near - identical representation of terminal windows open my computer and each time I update the - page I also update it with my current wallpaper, which generates the color scheme - dynamically using - Pywal. -

- TODO: - -

That's all for now

-
diff --git a/slow_react/public/games/index.html b/slow_react/public/games/index.html deleted file mode 100644 index cee4ada..0000000 --- a/slow_react/public/games/index.html +++ /dev/null @@ -1,22 +0,0 @@ -

Some games using wasm/webgl

-

Browser performance as of January 2023

-

Tested better:

-
    -
  1. Opera
  2. -
  3. Firefox Developer Edition
  4. -
  5. Brave
  6. -
-

Tested poor or broken:

-
    -
  1. Safari
  2. -
  3. Chrome stable release or older
  4. -
  5. Edge, see above^
  6. -
-

Consider anything else average or let me know otherwise

- diff --git a/slow_react/public/projects/20220529-housing.html b/slow_react/public/projects/20220529-housing.html deleted file mode 100644 index 515d299..0000000 --- a/slow_react/public/projects/20220529-housing.html +++ /dev/null @@ -1,138 +0,0 @@ -
-

May 29, 2022

-

Predicting Housing Prices

-

- A recent project I had for class was to use - scikit-learn - to create a regression model that will predict the price of a house based on some - features of that house. -

-

How?

-
    -
  1. - Pick out and analyze certain features from the dataset. Used here is the - Ames Iowa Housing Data - set. -
  2. -
  3. - Do some signal processing to provide a clearer input down the line, improving - accuracy -
  4. -
  5. Make predictions on sale price
  6. -
  7. - Compare the predicted prices to recorded actual sale prices and score the results -
  8. -
-

What's important?

-

- Well, I don't know much about appraising houses. But I have heard the term "price per - square foot" so we'll start with that: -

-

-

- There is a feature for 'Above Grade Living Area' meaning floor area that's not basement. - It looks linear, there were a couple outliers to take care of but this should be a good - signal. -

-

Next I calculated the age of every house at time of sale and plotted it:

-

-

- Exactly what I'd expect to see. Price drops as age goes up, a few outliers. We'll - include that in the model. -

-

Next I chose the area of the lot:

-

-

- Lot area positively affects sale price because land has value. Most of the houses here - have similarly sized lots. -

-

Pre-Processing

-
-

- Here is an example where using - StandardScaler() - just doesn't cut it. The values are all scaled in a way where they can be compared - to one-another, but outliers have a huge effect on the clarity of the signal as a - whole. -

- -
- - -
-
-
-

- You should clearly see in the second figure that an old shed represented in the top left - corner will sell for far less than a brand new mansion represented in the bottom right - corner. This is the result of using the - QuantileTransformer() - for scaling. -

-

The Model

-

- A simple - LinearRegression() - should do just fine, with - QuantileTransformer() - scaling of course. -

-
- -
-

- Predictions were within about $35-$40k on average.
- It's a little fuzzy in the higher end of prices, I believe due to the small sample size. - There are a few outliers that can probably be reduced with some deeper cleaning however - I was worried about going too far and creating a different story. An "ideal" model in - this case would look like a straight line. -

-

Conclusion

-

- This model was designed with a focus on quality and consistency. With some refinement, - the margin of error should be able to be reduced to a reasonable number and then - reliable, accurate predictions can be made for any application where there is a need to - assess the value of a property. -

-

- I think a large limiting factor here is the size of the dataset compared to the quality - of the features provided. There are - more features - from this dataset that can be included but I think the largest gains will be had from - simply feeding in more data. As you stray from the "low hanging fruit" features, the - quality of your model overall starts to go down. -

-

Here's an interesting case, Overall Condition of Property:

-
- -
-

- You would expect sale price to increase with quality, no? Yet it goes down.. Why?
- I believe it's because a lot of sellers want to say that their house is of highest - quality, no matter the condition. It seems that most normal people (who aren't liars) - dont't care to rate their property and just say it's average. Both of these combined - actually create a negative trend for quality which definitely won't help predictions! -

-

- I would like to expand this in the future, maybe scraping websites like Zillow to gather - more data.
- We'll see. -

-
diff --git a/slow_react/public/projects/20220529-housing/pics/age.png b/slow_react/public/projects/20220529-housing/pics/age.png deleted file mode 100644 index 318184d..0000000 Binary files a/slow_react/public/projects/20220529-housing/pics/age.png and /dev/null differ diff --git a/slow_react/public/projects/20220529-housing/pics/age_liv_area_ss.png b/slow_react/public/projects/20220529-housing/pics/age_liv_area_ss.png deleted file mode 100644 index ffb5739..0000000 Binary files a/slow_react/public/projects/20220529-housing/pics/age_liv_area_ss.png and /dev/null differ diff --git a/slow_react/public/projects/20220529-housing/pics/age_liv_qt.png b/slow_react/public/projects/20220529-housing/pics/age_liv_qt.png deleted file mode 100644 index 1f9782a..0000000 Binary files a/slow_react/public/projects/20220529-housing/pics/age_liv_qt.png and /dev/null differ diff --git a/slow_react/public/projects/20220529-housing/pics/livarea_no_outliers.png b/slow_react/public/projects/20220529-housing/pics/livarea_no_outliers.png deleted file mode 100644 index 520a4a3..0000000 Binary files a/slow_react/public/projects/20220529-housing/pics/livarea_no_outliers.png and /dev/null differ diff --git a/slow_react/public/projects/20220529-housing/pics/lot_area.png b/slow_react/public/projects/20220529-housing/pics/lot_area.png deleted file mode 100644 index f5eb2bc..0000000 Binary files a/slow_react/public/projects/20220529-housing/pics/lot_area.png and /dev/null differ diff --git a/slow_react/public/projects/20220529-housing/pics/mod_out.png b/slow_react/public/projects/20220529-housing/pics/mod_out.png deleted file mode 100644 index 7bad6cc..0000000 Binary files a/slow_react/public/projects/20220529-housing/pics/mod_out.png and /dev/null differ diff --git a/slow_react/public/projects/20220529-housing/pics/overall_cond.png b/slow_react/public/projects/20220529-housing/pics/overall_cond.png deleted file mode 100644 index 8141f20..0000000 Binary files a/slow_react/public/projects/20220529-housing/pics/overall_cond.png and /dev/null differ diff --git a/slow_react/public/projects/20220614-reddit.html b/slow_react/public/projects/20220614-reddit.html deleted file mode 100644 index 449b97f..0000000 --- a/slow_react/public/projects/20220614-reddit.html +++ /dev/null @@ -1,128 +0,0 @@ -
-

Jun 14, 2022

-

What Goes Into a Successful Reddit Post?

-

- In an attempt to find out what about a Reddit post makes it successful I will use some - classification models to try to determine which features have the highest influence on - making a correct prediction. In particular I use - Random Forest - and - KNNeighbors - classifiers. Then I'll score the results and see what the highest predictors are. -

-

- To find what goes into making a successful Reddit post we'll have to do a few things, - first of which is collecting data: -

-

Introducing Scrapey!

-

- Scrapey is my scraper script that takes a snapshot - of Reddit/r/all hot and saves the data to a .csv file including a calculated age for - each post about every 12 minutes. Run time is about 2 minutes per iteration and each - time adds about 100 unique posts to the list while updating any post it's already seen. -

-

- I run this in the background in a terminal and it updates my data set every ~12 minutes. - I have records of all posts within about 12 minutes of them disappearing from /r/all. -

-

EDA

-

- Next I take a quick look to see what looks useful, what - doesn't, and check for outliers that will throw off the model. There were a few outliers - to drop from the num_comments column. -

- Chosen Features: - -

- Then I split the data I'm going to use into two dataframes (numeric and non) to prepare - for further processing. -

-

Clean

-

Cleaning the data further consists of:

- -

Model

-

- If the number of comments of a post is greater than the median total number of comments - then it's assigned a 1, otherwise a 0. This is the target column. I then try some - lemmatizing, it doesn't seem to add much. After that I create and join some dummies, - then split and feed the new dataframe into - Random Forest - and - KNNeighbors - classifiers. Both actually scored the same with - cross validation - so I mainly used the forest. -

-

Notebook Here

-

Conclusion

-

Some Predictors from Top 25:

- -

- Popular words: 'like', 'just', 'time', 'new', 'oc', 'good', 'got', 'day', 'today', 'im', - 'dont', and 'love'. -

-

- People on Reddit (at least in the past few days) like their memes, porn, and talking - about their day. And it's preferred if the content is original and self posted. So yes, - post your memes to memes and shitposting, tag them NSFW, use some words from the list, - and rake in all that sweet karma! -

-

- But it's not that simple, this is a fairly simple model, with simple data. To go beyond - this I think the comments would have to be analyzed. - Lemmatisation I thought would - be the most influential piece, and I still think that thinking is correct. But in this - case it doesn't apply because there is no real meaning to be had from reddit post - titles, at least to a computer. (or I did something wrong) -

-

- There's a lot more seen by a human than just the text in the title, there's often an - image attached, most posts reference a recent/current event, they could be an inside - joke of sorts. For some posts there could be emojis in the title, and depending on their - combination they can take on a meaning completely different from their individual - meanings. The next step from here I believe is to analyze the comments section of these - posts because in this moment I think that's the easiest way to truly describe the - meaning of a post to a computer. With what was gathered here I'm only to get 10% above - baseline and I think that's all there is to be had here, I mean we can tweak for a few - percent probably but I don't think there's much left on the table. -

-
diff --git a/slow_react/public/projects/20230217-cartman.html b/slow_react/public/projects/20230217-cartman.html deleted file mode 100644 index 02ecf43..0000000 --- a/slow_react/public/projects/20230217-cartman.html +++ /dev/null @@ -1,36 +0,0 @@ -

Feb 17, 2023

-

Cartman

- -

- You can download a Docker image if you'd like to run it on your own hardware for either - x86_64 - or - aarch64. -

-

- More info here as well as - example scripts - to talk to the docker container. -

diff --git a/slow_react/src/colors.css b/slow_react/src/colors.css deleted file mode 100644 index ff2c59c..0000000 --- a/slow_react/src/colors.css +++ /dev/null @@ -1,29 +0,0 @@ -/* CSS variables - Generated by 'wal' */ -:root { - --wallpaper: url("/home/adam/Pictures/Wallpapers/1530677818495.jpg"); - - /* Special */ - --background: #100709; - --foreground: #9dd4d2; - --cursor: #9dd4d2; - - /* Colors */ - --color0: #100709; - --color1: #54514A; - --color2: #AD2C13; - --color3: #1B8C75; - --color4: #C1875E; - --color5: #236796; - --color6: #0EA49E; - --color7: #9dd4d2; - --color8: #6d9493; - --color9: #54514A; - --color10: #AD2C13; - --color11: #1B8C75; - --color12: #C1875E; - --color13: #236796; - --color14: #0EA49E; - --color15: #9dd4d2; -} - diff --git a/slow_react/src/components/Article.tsx b/slow_react/src/components/Article.tsx deleted file mode 100644 index 06df64c..0000000 --- a/slow_react/src/components/Article.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import { Component } from 'react' -import ReactMarkdown from 'react-markdown' -import rehypeRaw from 'rehype-raw' - -type ArticleProps = { - postURL: string; -} -type ArticleState = { - postHTML: string; -} -class Article extends Component { - constructor(props: ArticleProps) { - super(props) - this.state = { - 'postHTML': '' - } - } - async getPost(post: string) { - return fetch(post) - .then((res) => res.text()) - } - async componentDidMount() { - this.getPost(this.props.postURL) - .then((text) => this.setState({ postHTML: text })) - } - render() { - return ( -
- -
- ) - } -} - -export default Article diff --git a/slow_react/src/components/Blog.tsx b/slow_react/src/components/Blog.tsx deleted file mode 100644 index 3723b32..0000000 --- a/slow_react/src/components/Blog.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Component } from 'react' -import { VariableSizeList as List } from 'react-window' -import Slingshot from './Slingshot.js' - - -class Blog extends Component { - constructor(props) { - super(props) - this.state = { - articles: [], - } - } - async fetchBlogPosts() { - return fetch('http://127.0.0.1:9696/dennis/blog') - .then((res) => res.json()); - } - componentDidMount() { - this.fetchBlogPosts() - .then((articles) => this.setState({ articles })) - } - render() { - return ( - <> - {console.log(this.state.articles.map(asd => asd.url), "bet you can't guess how many times I run O.o")} - - ) - } -} - -export default Blog diff --git a/slow_react/src/components/Cartman.tsx b/slow_react/src/components/Cartman.tsx deleted file mode 100644 index ca910b9..0000000 --- a/slow_react/src/components/Cartman.tsx +++ /dev/null @@ -1,177 +0,0 @@ -import { Component } from 'react' - -type CartmanProps = { -} - -type CartmanState = { - bot_name: string - message: string - max_new_tokens: number - num_beams: number - num_beam_groups: number - no_repeat_ngram_size: number - length_penalty: number - diversity_penalty: number - repetition_penalty: number - early_stopping: boolean - chat_history: string -} - -class Cartman extends Component { - constructor(props: CartmanProps) { - super(props) - this.state = { - bot_name: 'cartman', - message: 'Enter text here', - max_new_tokens: 200, - num_beams: 8, // must be divisible by num_beam_groups - num_beam_groups: 4, - no_repeat_ngram_size: 3, - length_penalty: 1.4, - diversity_penalty: 0, - repetition_penalty: 2.1, - early_stopping: true, - chat_history: 'responses', - } - } - - onSubmit(message, history) { - let options = { - method: 'POST', - headers: { - 'Content-Type': - 'application/json;charset=utf-8' - }, - body: JSON.stringify(this.state) - } - - history.value = history.value + 'You: ' + message.value + '\n'; - message.value = ""; - history.scrollTop = history.scrollHeight - - let fetchRes = fetch('http://localhost:6969/chat', options); - fetchRes.then(res => - res.json()).then(d => { - history.value = `${history.value}${d.name}: ${d.message}\n`; - history.scrollTop = history.scrollHeight - }) - } - - render() { - return ( -
-

Cartman

-
-