website-xp-phone 1.6.5-e → 1.6.6-b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.node-version ADDED
@@ -0,0 +1 @@
1
+ 24.14.1
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 24.14.1
@@ -0,0 +1,228 @@
1
+ # Website Structure Documentation
2
+
3
+ This document explains how the personal website is structured and how to add new pages.
4
+
5
+ ## Architecture Overview
6
+
7
+ The website is a React + TypeScript single-page application built with Vite. It uses JSON-driven content for easy editing and follows a modular page-based architecture.
8
+
9
+ ## Key Files and Directories
10
+
11
+ ### Configuration Files
12
+
13
+ - `pages.json` - Master route configuration. Defines all available pages with their paths, menu labels, titles, and descriptions.
14
+ - `sections.json` - Content for the home page sections. Contains markdown-like content with headings, links, and nested structures.
15
+ - `addons.json` - Content for the addons page. Defines WoW addon configurations with download links and descriptions.
16
+
17
+ ### Source Code
18
+
19
+ ```
20
+ src/
21
+ ├── App.tsx # Main application with routing logic and page switching
22
+ ├── pages/
23
+ │ ├── index.ts # Page component exports
24
+ │ ├── HomePage.tsx # Home page component
25
+ │ ├── AddonsPage.tsx # Addons page component (and example of content-driven page)
26
+ │ ├── ContactPage.tsx # Contact page
27
+ │ ├── ResumePage.tsx # Resume page
28
+ │ ├── WowPage.tsx # WoW configs page
29
+ │ └── NotFoundPage.tsx # 404 page
30
+ ├── components/
31
+ │ ├── Page.tsx # Page wrapper components (PageContent, PageWithAddons)
32
+ │ ├── MenuBar.tsx # Navigation menu
33
+ │ ├── Addon.tsx # Addon item component
34
+ │ ├── Section.tsx # Section content component (in windowing/)
35
+ │ └── ...
36
+ ├── windowing/
37
+ │ ├── types.ts # TypeScript type definitions
38
+ │ ├── utils.ts # Content processing utilities
39
+ │ └── Section.tsx # Core section rendering
40
+ ├── lib/
41
+ │ └── ... # Utility libraries
42
+ └── utils/
43
+ └── ... # React hooks and utilities
44
+ ```
45
+
46
+ ### Public Content
47
+
48
+ ```
49
+ public/
50
+ ├── blog/ # Blog posts (markdown files)
51
+ ├── documents/ # Downloadable documents
52
+ └── images/ # Static images
53
+ ```
54
+
55
+ ## Adding a New Page
56
+
57
+ ### Step 1: Create the Route Configuration
58
+
59
+ Add a new entry to `pages.json`:
60
+
61
+ ```json
62
+ {
63
+ "path": "/pagerts",
64
+ "menuLabel": "pagerts",
65
+ "title": "pagerts - Page Router",
66
+ "description": "A TypeScript page routing library by kine"
67
+ }
68
+ ```
69
+
70
+ ### Step 2: Create the Page Component
71
+
72
+ Create a new file `src/pages/PagertsPage.tsx` based on `AddonsPage.tsx` or `HomePage.tsx`:
73
+
74
+ **For content-driven pages (like home/addons):**
75
+
76
+ ```tsx
77
+ import { useMemo } from "react";
78
+ import { PageContent } from "../components/Page";
79
+ import { processContent } from "../windowing/utils.ts";
80
+ import type { SectionProps } from "../windowing";
81
+
82
+ const PagertsPage = () => {
83
+ const { processed, metadata } = useMemo(
84
+ () => processContent(sections as SectionProps),
85
+ [],
86
+ );
87
+
88
+ return (
89
+ <main>
90
+ <PageContent sections={processed} pageMetadata={{ sections: metadata }} />
91
+ </main>
92
+ );
93
+ };
94
+
95
+ export default PagertsPage;
96
+ ```
97
+
98
+ **For addon-style pages (like addons):**
99
+
100
+ ```tsx
101
+ import { useMemo } from "react";
102
+ import { PageWithAddons } from "../components/Page";
103
+ import { processContent } from "../windowing/utils.ts";
104
+ import type { AddonProps } from "../components/Addon";
105
+
106
+ const PagertsPage = () => {
107
+ const { processed, metadata } = useMemo(
108
+ () => processContent(content as AddonProps),
109
+ [],
110
+ );
111
+
112
+ return (
113
+ <main>
114
+ <PageWithAddons
115
+ addons={processed as AddonProps}
116
+ pageMetadata={{ sections: metadata }}
117
+ />
118
+ </main>
119
+ );
120
+ };
121
+
122
+ export default PagertsPage;
123
+ ```
124
+
125
+ ### Step 3: Export the Page Component
126
+
127
+ Update `src/pages/index.ts`:
128
+
129
+ ```typescript
130
+ export { default as PagertsPage } from "./PagertsPage";
131
+ ```
132
+
133
+ ### Step 4: Add the Route to App.tsx
134
+
135
+ Import and add the route in `src/App.tsx`:
136
+
137
+ ```tsx
138
+ import {
139
+ // ... existing imports
140
+ PagertsPage,
141
+ } from "./pages";
142
+
143
+ // Add to the switch statement:
144
+ case "/pagerts":
145
+ content = <PagertsPage />;
146
+ break;
147
+ ```
148
+
149
+ ### Step 5: Create Content File
150
+
151
+ Create a JSON file (e.g., `pagerts.json`) with your content in the same format as `sections.json`:
152
+
153
+ ```json
154
+ {
155
+ "heading": "Welcome to pagerts",
156
+ "content": [
157
+ "pagerts is a simple page routing library",
158
+ {
159
+ "heading": "Features",
160
+ "content": [
161
+ "Type-safe routing",
162
+ "Nested routes support",
163
+ "Easy integration"
164
+ ]
165
+ }
166
+ ]
167
+ }
168
+ ```
169
+
170
+ ## Content Processing Pipeline
171
+
172
+ The website uses `processContent()` from `src/windowing/utils.ts` to:
173
+
174
+ 1. Validate content links
175
+ 2. Assign UUIDs to all content items
176
+ 3. Generate stable tree-index paths for permalink anchors
177
+
178
+ ## Page Types
179
+
180
+ | Page Type | Component Pattern | Use Case |
181
+ |-----------|-------------------|----------|
182
+ | `PageContent` | Section-based | Home page, blog posts |
183
+ | `PageWithAddons` | Addon-based | Addons page, Wow page |
184
+ | Direct component | Custom | Contact, Music, Sitemap |
185
+
186
+ ## Key Dependencies
187
+
188
+ - **React**: UI components and state management
189
+ - **Vite**: Build tool and dev server
190
+ - **xp.css**: Nostalgic CSS framework
191
+ - **react-markdown**: Blog content rendering
192
+
193
+ ## Deploying to Render.com
194
+
195
+ The website is deployed to Render.com as a static site. The `render.yaml` file configures the build and routing.
196
+
197
+ ### Domain Configuration
198
+
199
+ To add a subdomain redirect (e.g., `pagerts.akinevz.com` → `akinevz.com/pagerts`):
200
+
201
+ 1. **Add Custom Domain in Render Dashboard:**
202
+ - Go to your service → Settings → Custom Domains
203
+ - Add `pagerts.akinevz.com`
204
+ - Render will provide DNS verification records
205
+
206
+ 2. **Configure DNS:**
207
+ - Add a CNAME record for `pagerts` pointing to your Render service domain
208
+ - Example: `pagerts.akinevz.com` → `alias.kirill-nevzorov.onrender.com`
209
+
210
+ 3. **Path-based routing:**
211
+ - The website handles `/pagerts` route internally
212
+ - Visitors to `pagerts.akinevz.com` will load the homepage at `/`
213
+ - For specific redirects, configure via Render's domain aliases
214
+
215
+ ### Current Routes
216
+
217
+ The render.yaml defines:
218
+ - `/404` → `/404.html` (static 404 page)
219
+
220
+ ## Easter Egg: The `#feef69` Page
221
+
222
+ Navigate to `/#feef69` (note the hash) for a hidden easter egg:
223
+
224
+ - An empty page with background color `#FEEF69` (the same yellow as Clippy's border flash)
225
+ - Clippy remains visible if it was showing (it's the website's border flash color!)
226
+ - No menu bar - just pure yellow
227
+
228
+ This is a fun homage to the Clippy mascot that watches over the site.
package/contacts.json CHANGED
@@ -3,6 +3,8 @@
3
3
  "theme": "open",
4
4
  "content": [
5
5
  "[akinevz.com/resume](https://akinevz.com/resume)",
6
+ "[pagerts](https://akinevz.com/pagerts) - my CLI project",
7
+ "",
6
8
  "[github.com/akinevz2](https://github.com/akinevz2)",
7
9
  "[github.com/akinevz (archive)](https://github.com/akinevz)",
8
10
  "[youtube.com/@akinevz](https://www.youtube.com/@akinevz)",
@@ -10,12 +12,13 @@
10
12
  "[linkedin.com/in/akinevz](https://www.linkedin.com/in/akinevz/)",
11
13
  "[instagram.com/akinevz2](https://www.instagram.com/akinevz2/)",
12
14
  "[x.com/akinevz](https://x.com/akinevz)",
15
+ "",
13
16
  "[akinevz@gmail.com](mailto:akinevz@gmail.com)",
14
17
  "[akinevz@outlook.com](mailto:akinevz@outlook.com)",
15
18
  "",
16
19
  "",
17
20
  {
18
- "heading": "content for adults",
21
+ "heading": "funny within",
19
22
  "content": [
20
23
  "click here to look at the [fuckingclippy](#fuckingclippy)"
21
24
  ]
package/opencode.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://opencode.ai/config.json",
3
+ "model": "ollama/laguna-xs-2.1:safe",
4
+ "provider": {
5
+ "ollama": {
6
+ "npm": "@ai-sdk/openai-compatible",
7
+ "name": "Ollama (ws-rarebox)",
8
+ "options": {
9
+ "baseURL": "http://ws-rarebox:11434/v1"
10
+ },
11
+ "models": {
12
+ "laguna-xs-2.1:latest": {
13
+ "name": "Laguna XS 2.1",
14
+ "tool_call": true,
15
+ "options": {},
16
+ }
17
+ }
18
+ }
19
+ }
20
+ }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "website-xp-phone",
3
- "version": "1.6.5e",
3
+ "version": "1.6.6b",
4
4
  "license": "GPL v2",
5
5
  "author": "Kirill <kine> Nevzorov <akinevz@outlook.com>",
6
6
  "type": "module",
7
7
  "packageManager": "npm@10.8.2",
8
8
  "engines": {
9
- "node": ">=20.19.2",
9
+ "node": ">=24.14.1",
10
10
  "npm": ">=9.2.0",
11
11
  "clippy": "^1"
12
12
  },
@@ -53,6 +53,7 @@
53
53
  "devDependencies": {
54
54
  "@eslint/js": "^10.0.1",
55
55
  "@types/react": "^19.2.18",
56
- "@types/react-dom": "^19.2.3"
56
+ "@types/react-dom": "^19.2.3",
57
+ "pagerts": "^1.5.9"
57
58
  }
58
- }
59
+ }
package/pagerts.json ADDED
@@ -0,0 +1,96 @@
1
+ {
2
+ "heading": "pagerts - Webpage URL extractor",
3
+ "content": [
4
+ "pagerts is a secure, modern TypeScript CLI tool that transforms URLs into structured JSON objects, extracting all navigable items and resources from webpages.",
5
+ {
6
+ "heading": "Features",
7
+ "content": [
8
+ "🔒 **Security-First** - Built-in URL validation, rate limiting, and XSS protection",
9
+ "🚀 **Modern TypeScript** - Strict type checking and modern ES2022 syntax",
10
+ "⚡ **Fast** - Efficient parsing with LinkeDOM and concurrent request handling",
11
+ "🧪 **Well-Tested** - Comprehensive test coverage with Jest",
12
+ "📦 **Easy to Use** - Simple CLI interface with sensible defaults",
13
+ "🗂️ **Local File Support** - Parses local file paths and file:/// inputs",
14
+ "🧭 **Request Header Override** - Optional --user-agent flag for sites that behave differently by client"
15
+ ]
16
+ },
17
+ {
18
+ "heading": "Installation",
19
+ "content": [
20
+ {
21
+ "heading": "Global Installation",
22
+ "content": [
23
+ "npm install -g pagerts",
24
+ "",
25
+ "pagerts ./page.html"
26
+ ]
27
+ },
28
+ {
29
+ "heading": "Using npx (No Installation Required)",
30
+ "content": "npx pagerts ./page.html"
31
+ }
32
+ ]
33
+ },
34
+ {
35
+ "heading": "Usage",
36
+ "content": [
37
+ {
38
+ "heading": "Extract from local HTML file",
39
+ "content": "pagerts ./page.html"
40
+ },
41
+ {
42
+ "heading": "Extract from local file URL",
43
+ "content": "pagerts file:///path/to/file.html"
44
+ },
45
+ {
46
+ "heading": "Fetch from remote URL",
47
+ "content": "pagerts fetch https://website.com"
48
+ },
49
+ {
50
+ "heading": "Override user-agent",
51
+ "content": "pagerts fetch --user-agent 'Mozilla/5.0...' https://example.com"
52
+ }
53
+ ]
54
+ },
55
+ {
56
+ "heading": "Output",
57
+ "content": [
58
+ "The output is JSON containing:",
59
+ {
60
+ "heading": "title",
61
+ "content": "Page's title from <title> tag"
62
+ },
63
+ {
64
+ "heading": "url",
65
+ "content": "URL of the page"
66
+ },
67
+ {
68
+ "heading": "resources",
69
+ "content": "Array of resources (links, meta tags, embeds) with name and url fields"
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "heading": "Links",
75
+ "theme": "open",
76
+ "content": [
77
+ {
78
+ "heading": "npm package",
79
+ "link": "https://www.npmjs.com/package/pagerts"
80
+ },
81
+ {
82
+ "heading": "GitHub repository",
83
+ "link": "https://github.com/akinevz2/pagerts"
84
+ },
85
+ {
86
+ "heading": "Source Code",
87
+ "link": "https://github.com/akinevz2/pagerts/blob/main/src/resource.ts"
88
+ },
89
+ {
90
+ "heading": "CHANGELOG",
91
+ "link": "https://github.com/akinevz2/pagerts/blob/main/CHANGELOG.md"
92
+ }
93
+ ]
94
+ }
95
+ ]
96
+ }
package/pages.json CHANGED
@@ -35,6 +35,12 @@
35
35
  "title": "kind of work kine likes",
36
36
  "description": "hire me!"
37
37
  },
38
+ {
39
+ "path": "/pagerts",
40
+ "menuLabel": "pagerts",
41
+ "title": "pagerts - TypeScript Page Router",
42
+ "description": "A simple, type-safe page routing library for TypeScript"
43
+ },
38
44
  {
39
45
  "path": "/music",
40
46
  "menuLabel": "music",
@@ -45,15 +45,15 @@
45
45
  "url": "https://open.spotify.com/track/6gbmylJ7sB7NFfMfTQHosf"
46
46
  },
47
47
  {
48
- "heading": "Playlists!",
48
+ "heading": "Playlists from KINE!",
49
49
  "content": [
50
50
  {
51
51
  "title": "KINE - Amega 3 Atlantic Romanji",
52
- "link": "https://www.youtube.com/watch?v=sgJsVfPpjV0&list=PLAOwLA0fz3HQCtJ5seeEkv5x--o9DM-JE"
52
+ "url": "https://www.youtube.com/watch?v=sgJsVfPpjV0&list=PLAOwLA0fz3HQCtJ5seeEkv5x--o9DM-JE"
53
53
  },
54
54
  {
55
55
  "title": "KINE - Bass Overdose",
56
- "link": "https://www.youtube.com/watch?v=hgISJPPpzxA&list=PLAOwLA0fz3HTUFtCJGmK-TfUBNsqo_42G"
56
+ "url": "https://www.youtube.com/watch?v=hgISJPPpzxA&list=PLAOwLA0fz3HTUFtCJGmK-TfUBNsqo_42G"
57
57
  }
58
58
  ]
59
59
  },
@@ -130,4 +130,4 @@
130
130
  }
131
131
  ]
132
132
  }
133
- ]
133
+ ]
@@ -2,6 +2,42 @@
2
2
  "theme": "open",
3
3
  "heading": "kine's blog posts",
4
4
  "content": [
5
+ {
6
+ "heading": "Lie Symmetries and the Heat-Mass Transport Homeomorphism",
7
+ "content": [
8
+ "Bridging Lie theory with statistical mechanics and thermodynamics allows us to model continuous symmetries in advanced transport phenomena.",
9
+ "This post breaks down the theoretical framework connecting topological homeomorphisms, particle kinetics, and geometric conservation laws.",
10
+ {
11
+ "heading": "1. Lie Groups and Continuous Symmetries",
12
+ "content": [
13
+ "Lie theory fundamentally explores continuous symmetries within physical systems.",
14
+ "In fluid dynamics and thermodynamics, researchers utilize **Lie point symmetries** to simplify systems of partial differential equations (PDEs).",
15
+ "If a particle or fluid medium treats heat distribution (thermal diffusion) and mass distribution (molecular diffusion) identically under a geometric transformation, a Lie group can map the solution of the heat equation directly onto the mass equation."
16
+ ]
17
+ },
18
+ {
19
+ "heading": "2. The Heat-Mass Transport Homeomorphism",
20
+ "content": [
21
+ "In classical transport phenomena, heat and mass transfer are governed by strikingly parallel mathematical laws:",
22
+ "* **Fourier's Law** for heat: `J_q = -k ∇T`",
23
+ "* **Fick's Law** for mass: `J_m = -D ∇c`",
24
+ "When a strict topological homeomorphism exists between them, the underlying state space allows you to deform the temperature field continuously into the concentration field without tearing or breaking the mathematical structure.",
25
+ "This is highly relevant in **coupled heat and mass transfer** (such as the Soret and Dufour effects), where temperature gradients drive mass flux, and concentration gradients simultaneously drive heat flux."
26
+ ]
27
+ },
28
+ {
29
+ "heading": "3. Connecting Back to Kinetic Energy",
30
+ "content": [
31
+ "Framing this through Lie theory anchors the system to fundamental geometric conservation laws.",
32
+ "According to **Noether's Theorem**, every differentiable symmetry of a physical system corresponds to a strict conservation law:",
33
+ "* **Time translation symmetry** yields the conservation of energy (which microscopic kinetic theory maps directly to temperature).",
34
+ "* **Spatial translation symmetry** yields the conservation of momentum (mass in motion).",
35
+ "Reconstructing the kinetic energy formula `1/2 m v²` through these principles highlights the symmetric foundation of how mass and velocity translate into thermal energy."
36
+ ]
37
+ },
38
+ "> Co-authored by akinevz & AI Assistant"
39
+ ]
40
+ },
5
41
  {
6
42
  "heading": "booger boogie intermission",
7
43
  "content": "idle your mouse with me",
@@ -11,11 +47,16 @@
11
47
  "blog operating normally! :D",
12
48
  {
13
49
  "heading": "Rueg Config published! (#world of warcraft, #addons)",
50
+ "theme": "open",
14
51
  "content": [
15
52
  "Packed up the full Rueg configuration into a distributable archive — addons, WeakAuras, and profiles in one drop.",
16
53
  "Grab it from the [addons page](/addons) or click below.",
54
+ "I had a bad copy of the zip stuck in website cache:",
55
+ "If you downloaded an archive with 2 folders",
56
+ "Delete it, the correct dist.7z should have 3",
57
+ "You can skip copying WTF/ and just copy interface",
17
58
  {
18
- "heading": "Download",
59
+ "heading": "Big Download Button",
19
60
  "link": "/dist.7z"
20
61
  }
21
62
  ]
@@ -418,12 +459,8 @@
418
459
  ]
419
460
  }
420
461
  ]
421
- },
422
- {
423
- "heading": "first post (#meta, #blog, welcome to my website!)",
424
- "content": "this is a placeholder blog post. i suddenly got motivation to start writing text again."
425
462
  }
426
463
  ]
427
464
  }
428
465
  ]
429
- }
466
+ }
@@ -1,18 +1,17 @@
1
- 290afbd84618a31bac4d0c3dc9f8a9763fafdb4ed6cbdc2d43a2e1f8da32d0fa 404.html
2
- 290afbd84618a31bac4d0c3dc9f8a9763fafdb4ed6cbdc2d43a2e1f8da32d0fa 404/index.html
1
+ ca314fd1590885727a6f0a56b0ab045120b9f7c3db2f76b36dd91c4ad400cf76 404.html
2
+ ca314fd1590885727a6f0a56b0ab045120b9f7c3db2f76b36dd91c4ad400cf76 404/index.html
3
3
  7da83c3d559cadd8e46256230136893e2ce6fe70f03a41ef2d81181d744eadda 5.html
4
4
  3b3034521c33c8fd32ae15b18e1758f4155160cf65241c2c282b407881d1f554 BAHNSCHRIFT.TTF
5
5
  d70465bbbb7a22764551a2c9fde0cc7c617618fbb41da07661b71a3598e0a25a Beep.ogg
6
6
  9d7f0ac3d83d26971f6a83441fb363fd03dad567a02dcd1fc043b15ae6768a13 Clippy.png
7
7
  f0067c432a0fffdb4f6226177e3d8fc6b67058a7f24ec0a8ed7afc9c3371bd87 Layered Network Security Model for Home Networks (slides).pdf
8
8
  acec8ef1b8db9f0526e7ed043c807e77784ded2cace20cee0ee66327ff129db6 Layered Network Security Model for Home Networks.pdf
9
- c079b24147f64f850f3c10a52f971d77a3b7a248104005d4a8a3fb781f130849 RuegConfig.7z
10
9
  f2090319a17b8426af1826047aa9fe316923998c3d8db162b70fdfbb7d73ed09 Smoll.png
11
10
  da6292bf7acd20d8c4dd54bfd0f54605f9f2fda10f551bba15969dcbe9e14df2 TODO.pdf
12
11
  fdbbad0b3d609ea589e355e0a53f25c12d1dbcfd32ccf22f0332ff67bec22664 Toiny.png
13
- 0598a6f71a18d62e5ff0f6ad19608912d042b1228a174ed7bff618324aad90aa addons.html
12
+ aa2c1c2e18a6cf4160412cb096fa251efe7cbb3cf337f22760f62807d82ded5c addons.html
14
13
  417de6bb69b0e1cd69ce72a30cf85fca751fd267074822c7582110ba66c63487 addons/energy-swing.txt
15
- 0598a6f71a18d62e5ff0f6ad19608912d042b1228a174ed7bff618324aad90aa addons/index.html
14
+ aa2c1c2e18a6cf4160412cb096fa251efe7cbb3cf337f22760f62807d82ded5c addons/index.html
16
15
  176aaac676a7e3fee2ea16bf0335d450e3ff370b33e2946e1ddbba19598601c9 addons/lego-yoda-death-readme.txt
17
16
  8ba04990cf098dffbb0af10c36345455889b8bbbe40071a63e778203f0956c2f addons/lego-yoda-death.mp3
18
17
  0e9faacb88a2db38b9762d108a31c4ad603abb9bf83d738b74984506a26549fa addons/mana-blast.txt
@@ -33,8 +32,8 @@ a49b6fb08f5c5e4d4828cf49e98b72692dc36888502f262041f1822f864fc20b addons/rueg-wa
33
32
  93f4825028c263e69ca4560f45ff54415fccad38c10e37ea1eefef3ab0ff3f29 assets/PerfectDOSVGA437Win-BZfDqYRn.woff2
34
33
  c71295b97f51c2f199b8f1a0ef3cc55fbe5dec6f78daee9098b4dbfe942931a8 assets/PerfectDOSVGA437Win-C4lD4zTj.woff
35
34
  9e8db3fde46bba35d28f839d0c507a7407b7e78639a7d52a27e2bc148d29a5b2 assets/firebase-CpVmm8V0.js
36
- 0159bd2174114cf0ed5addb5aa3249eaa7a5e73997c20e22ee6b0f25b53520b9 assets/index-BsQF6izn.css
37
- 59ec3c10f1ab9d066c5fb2e9e2627be6396690979d6478c28a827c1a699c7f5c assets/index-ByWLgtih.js
35
+ 99a523d9b1708c28bda6263a6125c2f9f61947127da936159cc90553e279bbb6 assets/index-B6fcJ3lr.css
36
+ 3aa6021b1a6c4e3fd1ef9c677b88a240d02149adccb52b7d48e2e71dd6b601d6 assets/index-DxxMKnze.js
38
37
  e122aa26fc9b7191c3af1b0fca8e780474c16240733b69286f9cd50efb447736 assets/markdown-Cj-Co3zP.js
39
38
  0c69b2d91191bce88ce4ec0ad81b26f3dd106ea62eff080b30ce550f75438a6c assets/ms_sans_serif-C3pax6mQ.woff
40
39
  917afdc85e0876f9086d34392ece168b5590c97e458e6e827dee47ce56684154 assets/ms_sans_serif-Du8rjN1q.woff2
@@ -47,7 +46,7 @@ e6253b060c25fa6449cb37bcac0bc40db932aa4f83502d53af54277f48d2718e assets/react-c
47
46
  2ca1269006a1f8e93b6068060a2ad39852589d9151d0e422e93ed6569e61a8ac assets/xpcss-DnhuGufg.css
48
47
  37eeb63788be9805d5ff1494d7e737c810d0ca98094ce2f3899b04534767618f avatar.jpg
49
48
  465b5adb81e7c1ee040e1a9842d947aea2a9df4f5d153908438745d373e8f22c avatar.png
50
- cc385faf0b3ee43304cb9ece70eacd3910eb38dd8abdabebed8b193a682eed5d blog.html
49
+ 9ce07f940b03650eb47895e558692f4c22d65575fee5754886d1b97cb5c8f9d4 blog.html
51
50
  57bc1a174b8e4b77b417c9f0f8841a17f40e8de9398e5c6901f997be0c1829dc blog/1st.md
52
51
  59996c7883d75c6d9d2a3f8bebdd894df7f13d234ad8fbd488152c7354b05d3c blog/2nd.md
53
52
  169fab54f1fb8596d3648dcc2c07fdc87012dca4048018d724dece997fa3033c blog/3rd.md
@@ -56,17 +55,17 @@ c798889828d3da966f7946d9c8a5814c4e3409d1d14dd5eaa4652b387cde0345 blog/5th.md
56
55
  f9d3862eb88c58f2f788758cb0c9e7a5f1bd1989c4b4b9c9c5fa8a9430e19140 blog/7.md
57
56
  237dc169931f8712f58fe1ad3a2ee626636b8e653e40f00a9d53ddd76cd3e1a6 blog/P5kKjYA.png
58
57
  380fc0b2043ea9fdc006d99578a6e2e3bc85b0bdfaec53e0c2378fb431e068d8 blog/exhausted.txt
59
- cc385faf0b3ee43304cb9ece70eacd3910eb38dd8abdabebed8b193a682eed5d blog/index.html
60
- a444a7a380aac04f8a7a39c6d765c405baaff824a065f4dcd963c5a4a5e93f5e blog/music-links.json
58
+ 9ce07f940b03650eb47895e558692f4c22d65575fee5754886d1b97cb5c8f9d4 blog/index.html
59
+ 9bde35b21fab1d72290d40f5d35233cec047e2abd3c9c8fc8c5b3261ea3d7229 blog/music-links.json
61
60
  9b356b02e46d302dfcd1b54f10b7e584743e2852fe4f3cd2e76189d4ce60f519 blog/pizza.gif
62
- 13872adf5e58294874d64c700acc1894e9167ed4649c3d2c157fa8f3bbcb9abf blog/posts.json
61
+ e10434a6169b5f91bb20e2bc9b96b7933c284e7289f5c7f626abc9dd9b654410 blog/posts.json
63
62
  d327f052d31ca0ed0154ccba9670eb139338e955f0eb6912b036cb3d4795edf6 blog/references/NA2000_03.pdf
64
63
  006bc1b90067fcb72301755e5444664018ccfef3211a2a08c784bce23532842b blog/relevant.jpg
65
64
  252795f5503587b6338a6c91e2b2f02640738532797bd98f60e29cdfc0677348 blog/soundcloud.json
66
65
  1864ee7f96e2e53bc99bac537fc469004de22665f07a72abfc1535ce6d7bbc04 blog/wsl.1.md
67
66
  7450b1ef49558a9476245635ba282913a3af31c1b1e5d72053dab225d7f04b6a blog/рунисч-глоссарий.md
68
- 1beed156a95789676ab77f97c5c3765c055e7a4ddb0ec6833a66aef25067883f contact.html
69
- 1beed156a95789676ab77f97c5c3765c055e7a4ddb0ec6833a66aef25067883f contact/index.html
67
+ 1ec0da6ad062c9b8e0d289e25b00ed1e7df248a29bc068134050073ef07656ff contact.html
68
+ 1ec0da6ad062c9b8e0d289e25b00ed1e7df248a29bc068134050073ef07656ff contact/index.html
70
69
  812708d9776e7907534bda54e61169a56ee928923b53445691889d71ef213583 crunchy_kick.ogg
71
70
  bb79532b74f54410660a90d90e8db3dfa447e083d2411133ad9fddc9ded7c949 dist.7z
72
71
  9d78649ba6229bf35d63f277a95d3fc5e18ac11b948003244b4f6b8007b3b19f documents/Creating Good Code.mp4
@@ -93,21 +92,23 @@ bf87b6222b106d2ff310312bbe120033011233124d686ca01ca695565715e6ff images/kogg1.p
93
92
  b3e19635a8088227b05bdb37e4ebf6d3e85c871b32249087bcf85e0108a43492 images/rueg1.png
94
93
  ed9b21eea7cdec55954f9af6d00bc61608d027cf4e1bc6182090ad051913e224 images/rueg2.png
95
94
  f56503d3d9ad906b5d5b4e1e2c9a9ef3206947959cbc1835b2f6681e5cb115f2 incorrect_responses.txt
96
- 1d053db953b9c1cc5278963ea131afca8c2739d8ff0d16a1787fe9e323176100 index.html
95
+ 16954a3db5a0747776fc896befa64af9c374c9f8b8f73326ef403eba03f1826c index.html
97
96
  6cab264bc21a1f2abc344f27af3cde46d55f7e8aa4340f3cb3ed49e1e4ae63fa loading.css
98
97
  825c84d88cba6ff7fdaa324946c134ab3161007d0a63a3c5906ff381c49b2f7e lol.jpg
99
98
  2a1670273af4da1a966e557b6fbdce11c4e50e4488ddcfda465613871b52906b medium.png
100
- adc146605ba8877470c390b8105c065c5b644ab62feeb45c545466fb2df8d677 music.html
101
- adc146605ba8877470c390b8105c065c5b644ab62feeb45c545466fb2df8d677 music/index.html
99
+ 0f9129ddb7dffa47f425a645607ce27a68659c7e88bf5fd6782739814735859f music.html
100
+ 0f9129ddb7dffa47f425a645607ce27a68659c7e88bf5fd6782739814735859f music/index.html
101
+ eec5ce27c1ab462f6b9d0c51bc14edf26c98a9a6796a80b9dc78a78240abfa81 pagerts.html
102
+ eec5ce27c1ab462f6b9d0c51bc14edf26c98a9a6796a80b9dc78a78240abfa81 pagerts/index.html
102
103
  65b55ce337610c955fa25b7a5982024fa2a5f336b996ec4b19bd96d863ba0803 resume.html
103
- b285a00a19fb7e1aaf298b5f37720a144cb803bc42868772e9f9d52a0af1685c resume/index.html
104
+ bccc9b6dd1d310e4b26b7667b6c45ca809c521726de9a2d828d456e3a6001579 resume/index.html
104
105
  9e335bff121283bade7005bff78316104846ea5e99e7e2f594fac9fddf39c455 robots.txt
105
- 69ff96e7f4e8823bbee3fd6109bd9c333aa53d080526a0dd3a1a8e2552adce0e sitemap.html
106
- 510cddda7904e7ee40f744917e3879e4e0d8887d3444ca4c92b4ece5f4b613cd sitemap.xml
107
- 69ff96e7f4e8823bbee3fd6109bd9c333aa53d080526a0dd3a1a8e2552adce0e sitemap/index.html
108
- ec8328c6dfd2f193e5f2f3d52732f1667c7a20e9f5adeecdac3196f99af27f45 soundcloud.json
106
+ 5adf569c2093ecadcd36be5cb0bbf6afe9cdc2fe8a8fa5fb810eec1bec862aaf sitemap.html
107
+ 9bb7af3774b39735abdb6f47c8eb9380f7c8c3b4e9631120bc6f5ee706126b24 sitemap.xml
108
+ 5adf569c2093ecadcd36be5cb0bbf6afe9cdc2fe8a8fa5fb810eec1bec862aaf sitemap/index.html
109
+ 94dd2138baf37a864856f29b83a82fce06f0cc19f51a1e8ca0a583509040d940 soundcloud.json
109
110
  fc6ff550d5c7fbd55537560ef0d5470bc68f74b2f41b6386d78b149e897b033c spinner.svg
110
111
  e58ca0ef8466ec1d0b0a0e71c4c1f1b620a8d30285df4a8d9e1b243654f0cd6e tada.wav
111
- 96008c26f9ca8e88c84ff734b08ed30251e94ea508680e5055c630262fcfff9e wow.html
112
- 96008c26f9ca8e88c84ff734b08ed30251e94ea508680e5055c630262fcfff9e wow/index.html
112
+ 89d21250a666951eba9b53ae3f2b17aa7448e629f5f424c731b08773ed6264ce wow.html
113
+ 89d21250a666951eba9b53ae3f2b17aa7448e629f5f424c731b08773ed6264ce wow/index.html
113
114
  da5cb674a690cb58ae78f63c2162ed18ee5daf7576d05c57930f000e9df48194 yooh.mp3