<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>0y.lv</title>
		<link>https://0y.lv/</link>
		<description>Recent content on 0y.lv</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Tue, 11 Aug 2026 07:16:40 +0000</lastBuildDate>
		
			<atom:link href="https://0y.lv/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Retro3D Engine</title>
				<link>https://0y.lv/projects/retro3d-engine/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://0y.lv/projects/retro3d-engine/</guid>
				<description></description>
			</item>
			<item>
				<title>MicroKV Storage</title>
				<link>https://0y.lv/projects/microkv-storage/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://0y.lv/projects/microkv-storage/</guid>
				<description></description>
			</item>
			<item>
				<title>Tiny-Wasm Parser</title>
				<link>https://0y.lv/projects/tiny-wasm-parser/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://0y.lv/projects/tiny-wasm-parser/</guid>
				<description></description>
			</item>
			<item>
				<title>Kaoprao: Going thru Architecture of Note-Taking Apps</title>
				<link>https://0y.lv/posts/note-taking-strokes/</link>
				<pubDate>Tue, 11 Aug 2026 07:16:40 +0000</pubDate>
				<guid>https://0y.lv/posts/note-taking-strokes/</guid>
				<description>Reaching the unbeknownst world of note taking empire</description>
			</item>
			<item>
				<title>Contact</title>
				<link>https://0y.lv/contact/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://0y.lv/contact/</guid>
				<description>&lt;h2 id=&#34;social--direct-channels&#34;&gt;Social &amp;amp; Direct Channels&lt;/h2&gt;&#xA;&lt;div class=&#34;contact-card-grid&#34;&gt;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &lt;div class=&#34;contact-item-card contact-wasm-grid-card&#34; title=&#34;Wipe glass to reveal &amp; copy email&#34;&gt;&#xA;    &lt;div style=&#34;width: 100%; min-width: 0;&#34;&gt;&#xA;      &lt;div style=&#34;display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.4rem; flex-wrap: wrap; gap: 0.4rem;&#34;&gt;&#xA;        &lt;div class=&#34;contact-item-label&#34;&gt;Email&lt;/div&gt;&#xA;        &lt;span class=&#34;wasm-badge&#34; id=&#34;wasm-fog-status&#34; style=&#34;font-size: 0.7rem; padding: 0.05rem 0.35rem;&#34;&gt;0% Wiped&lt;/span&gt;&#xA;      &lt;/div&gt;&#xA;  &#xA;      &lt;div class=&#34;wasm-canvas-container&#34; id=&#34;wasm-canvas-wrapper&#34; style=&#34;position: relative; width: 100%; border: 1.5px solid var(--border-dark); overflow: hidden; background: #0e1422; box-shadow: inset 1px 1px 0 rgba(0,0,0,0.4); cursor: crosshair;&#34;&gt;&#xA;        &lt;canvas id=&#34;contact-wasm-canvas&#34; style=&#34;width: 100%; height: auto; aspect-ratio: 4.2/1; display: block;&#34;&gt;&lt;/canvas&gt;&#xA;        &lt;div id=&#34;cloth-wiper&#34; class=&#34;cloth-wiper&#34; style=&#34;position: absolute; pointer-events: none; transform: translate(-50%, -50%); font-size: 2.2rem; z-index: 10; display: none;&#34;&gt;&lt;/div&gt;&#xA;      &lt;/div&gt;&#xA;  &#xA;      &lt;div style=&#34;display: flex; justify-content: space-between; align-items: center; margin-top: 0.4rem; font-family: monospace; font-size: 0.7rem; color: var(--muted-color); flex-wrap: wrap; gap: 0.4rem;&#34;&gt;&#xA;        &lt;span id=&#34;wasm-hint-text&#34;&gt;🧹 Wipe Glass&lt;/span&gt;&#xA;        &lt;button class=&#34;btn-toggle&#34; id=&#34;btn-refog&#34; style=&#34;font-size: 0.65rem; padding: 0.05rem 0.3rem;&#34; title=&#34;Re-apply Frosted Glass Fog&#34;&gt;Re-Fog&lt;/button&gt;&#xA;      &lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &lt;a href=&#34;https://github.com/vt0y&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;contact-item-card&#34; title=&#34;GitHub&#34;&gt;&#xA;    &#xA;    &lt;div class=&#34;contact-item-details&#34;&gt;&#xA;      &lt;div class=&#34;contact-item-label&#34;&gt;GitHub&lt;/div&gt;&#xA;      &lt;div class=&#34;contact-item-val&#34;&gt;github.com/vt0y&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;  &#xA;&#xA;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;pgp-public-key&#34;&gt;PGP Public Key&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;  &#xA;&#xA;&#xA;&lt;details class=&#34;pgp-details&#34;&gt;&#xA;  &lt;summary&gt;PGP Public Key (Click to view/copy)&lt;/summary&gt;&#xA;&#xA;  &#xA;  &lt;div style=&#34;margin-top: 0.8rem; font-family: monospace; font-size: 0.82rem; color: var(--muted-color);&#34;&gt;&#xA;    Fingerprint: &lt;code&gt;8587 2404 93CA F7A0 9A3B CDEB 26E2 02C1 4B99 06ED&lt;/code&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;&#xA;  &#xA;&#xA;  &#xA;  &lt;pre class=&#34;pgp-key-block&#34; id=&#34;pgp-key-block&#34;&gt;&lt;code&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----&#xA;&#xA;mDMEagtT1RYJKwYBBAHaRw8BAQdAL2peExNuIsfWAmJTR4L0wkvgK8q8Ng4/j3hc&#xA;s+ZNF0S0EXRAMHkubHYgPHRAMHkubHY+iJAEExYKADgWIQSFhyQEk8r3oJo7zesm&#xA;4gLBS5kG7QUCagtT1QIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRAm4gLB&#xA;S5kG7R2oAQDWvVi2xdJ6OmGzGClwCtGylpuIl0BzNEeL4B2EKdVGuQD/UaNUhOEN&#xA;2rAomUytAvfU76mJ2uLRzUlytIJLC26Z0g24OARqC1PVEgorBgEEAZdVAQUBAQdA&#xA;/CUtu283vZIxFILmK3/+AJRgXSUpVn65D0rakXJhKUkDAQgHiHgEGBYKACAWIQSF&#xA;hyQEk8r3oJo7zesm4gLBS5kG7QUCagtT1QIbDAAKCRAm4gLBS5kG7YGyAQDniRsK&#xA;BC/GPBkF4cdzL7Ke6JHTypO4lQx+zF6lSrSOmwD/eFNO4ZPOJ+9CsKN1VskW/QJ2&#xA;0QKMEMlGanypLF6ywgA=&#xA;=Od8q&#xA;-----END PGP PUBLIC KEY BLOCK-----&lt;/code&gt;&lt;/pre&gt;&#xA;  &#xA;&#xA;  &lt;div class=&#34;pgp-actions&#34; style=&#34;margin-top: 0.8rem; display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;&#34;&gt;&#xA;    &#xA;    &lt;button class=&#34;btn-toggle btn-copy-fixed&#34; data-text-initial=&#34;Copy PGP Key&#34; data-text-copied=&#34;Copied!&#34; onclick=&#34;copyPgpKey(this)&#34;&gt;Copy PGP Key&lt;/button&gt;&#xA;    &#xA;&#xA;    &#xA;&#xA;    &#xA;    &lt;a href=&#34;https://github.com/vt0y.gpg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;btn-toggle&#34; style=&#34;text-decoration: none;&#34; title=&#34;GitHub Public GPG Key&#34;&gt;&#xA;      GitHub Key&#xA;    &lt;/a&gt;&#xA;    &#xA;&#xA;    &#xA;&#xA;    &#xA;    &lt;a href=&#34;https://keys.openpgp.org/search?q=8587240493CAF7A09A3BCDEB26E202C14B9906ED&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;btn-toggle&#34; style=&#34;text-decoration: none;&#34; title=&#34;Search key on keys.openpgp.org&#34;&gt;&#xA;      OpenPGP Keyserver&#xA;    &lt;/a&gt;&#xA;    &lt;a href=&#34;https://keyserver.ubuntu.com/pks/lookup?search=0x8587240493CAF7A09A3BCDEB26E202C14B9906ED&amp;op=vindex&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34; class=&#34;btn-toggle&#34; style=&#34;text-decoration: none;&#34; title=&#34;Search key on Ubuntu Keyserver&#34;&gt;&#xA;      Ubuntu Keyserver&#xA;    &lt;/a&gt;&#xA;    &#xA;&#xA;    &#xA;  &lt;/div&gt;&#xA;&lt;/details&gt;</description>
			</item>
			<item>
				<title>CV / WASM 3D Engine</title>
				<link>https://0y.lv/cv/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://0y.lv/cv/</guid>
				<description>&lt;div class=&#34;box-card&#34; style=&#34;margin-bottom: 2rem;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8rem; border-bottom: 1px dashed var(--border-color); padding-bottom: 0.6rem; flex-wrap: wrap; gap: 0.5rem;&#34;&gt;&#xA;    &lt;div style=&#34;display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;&#34;&gt;&#xA;      &lt;span style=&#34;font-family: monospace; font-weight: bold; font-size: 0.95rem;&#34;&gt;WASM 3D Horde Shooter&lt;/span&gt;&#xA;      &lt;span class=&#34;wasm-badge&#34; id=&#34;wasm-fps-badge&#34;&gt;FPS: &lt;/span&gt;&#xA;      &lt;span class=&#34;wasm-badge&#34; id=&#34;wasm-seed-badge&#34; style=&#34;cursor: pointer;&#34; title=&#34;Click to Randomize Seed&#34;&gt;Seed: #INIT&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &#xA;  &lt;div class=&#34;wasm-toolbar&#34;&gt;&#xA;    &lt;div class=&#34;wasm-btn-group&#34;&gt;&#xA;      &lt;button class=&#34;wasm-btn&#34; id=&#34;btn-wasm-fullscreen&#34; title=&#34;Toggle Fullscreen (Hotkey: F or F11)&#34;&gt;&#xA;        &lt;span&gt;Fullscreen&lt;/span&gt; &lt;code style=&#34;font-size: 0.75rem;&#34;&gt;[F / F11]&lt;/code&gt;&#xA;      &lt;/button&gt;&#xA;      &lt;button class=&#34;wasm-btn&#34; id=&#34;btn-wasm-seed&#34; title=&#34;Generate New Random Seed &amp; Restart&#34;&gt;&#xA;        &lt;span&gt;Random Seed&lt;/span&gt;&#xA;      &lt;/button&gt;&#xA;      &lt;button class=&#34;wasm-btn&#34; id=&#34;btn-wasm-save&#34; title=&#34;Export Native .dat / .saves Binary File&#34;&gt;&#xA;        &lt;span&gt;Save Game&lt;/span&gt;&#xA;      &lt;/button&gt;&#xA;      &lt;button class=&#34;wasm-btn&#34; id=&#34;btn-wasm-load&#34; title=&#34;Load Save File (.dat / .saves / .json)&#34;&gt;&#xA;        &lt;span&gt;Load Save&lt;/span&gt;&#xA;      &lt;/button&gt;&#xA;      &lt;button class=&#34;wasm-btn&#34; id=&#34;btn-wasm-restart&#34; title=&#34;Restart Game Run&#34;&gt;&#xA;        &lt;span&gt;Restart&lt;/span&gt;&#xA;      &lt;/button&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;input type=&#34;file&#34; id=&#34;wasm-save-file-input&#34; accept=&#34;.dat,.saves,.json&#34; style=&#34;display: none;&#34; /&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &#xA;  &lt;div class=&#34;canvas-container&#34; id=&#34;wasm-game-canvas-container&#34;&gt;&#xA;    &lt;canvas id=&#34;wasm-game-canvas&#34; style=&#34;width: 100%; height: 100%; display: block; border: none; outline: none; cursor: crosshair;&#34;&gt;&lt;/canvas&gt;&#xA;    &lt;div class=&#34;wasm-drag-overlay&#34; id=&#34;wasm-drag-overlay&#34;&gt;&#xA;      &lt;div style=&#34;font-size: 2.5rem; margin-bottom: 0.5rem;&#34;&gt;&lt;/div&gt;&#xA;      &lt;div&gt;Drop Save File (.dat / .saves / .json) Here to Load Game State&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &#xA;  &lt;details class=&#34;wasm-controls-details&#34;&gt;&#xA;    &lt;summary&gt;&#xA;      &lt;span&gt; &lt;strong&gt;Quick Controls &amp; Keybindings&lt;/strong&gt;&lt;/span&gt;&#xA;      &lt;span style=&#34;font-size: 0.75rem; color: var(--accent-color);&#34;&gt;[ Click to Expand/Collapse ]&lt;/span&gt;&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;wasm-controls-grid&#34;&gt;&#xA;      &lt;div&gt;&#xA;        &lt;div class=&#34;wasm-controls-col-title&#34;&gt;Movement &amp; Camera&lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;Move Character&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;W&lt;/code&gt; &lt;code&gt;A&lt;/code&gt; &lt;code&gt;S&lt;/code&gt; &lt;code&gt;D&lt;/code&gt; / &lt;code&gt;↑&lt;/code&gt; &lt;code&gt;←&lt;/code&gt; &lt;code&gt;↓&lt;/code&gt; &lt;code&gt;→&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;3D Camera Aim&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;Mouse&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;&lt;strong&gt;Change POV (1st / 3rd Person)&lt;/strong&gt;&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;V&lt;/code&gt; / &lt;code&gt;C&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;      &lt;/div&gt;&#xA;      &lt;div&gt;&#xA;        &lt;div class=&#34;wasm-controls-col-title&#34;&gt;Spells &amp; Actions&lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;Choose Spell Card&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;1&lt;/code&gt; &lt;code&gt;2&lt;/code&gt; &lt;code&gt;3&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;Pause / Resume Game&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;Esc&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;Restart (On Game Over)&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;R&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;      &lt;/div&gt;&#xA;      &lt;div&gt;&#xA;        &lt;div class=&#34;wasm-controls-col-title&#34;&gt;System &amp; Saves&lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;Toggle Fullscreen Mode&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;F&lt;/code&gt; / &lt;code&gt;F11&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;Load Save State (.dat / .saves / .json)&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;Drag &amp;amp; Drop&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;wasm-controls-row&#34;&gt;&#xA;          &lt;span&gt;Randomize Seed &amp; Restart&lt;/span&gt;&#xA;          &lt;span&gt;&lt;code&gt;Seed&lt;/code&gt;&lt;/span&gt;&#xA;        &lt;/div&gt;&#xA;      &lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/details&gt;&#xA;&lt;/div&gt;</description>
			</item>
	</channel>
</rss>
