diff --git a/app.min.css b/app.min.css
index 465ba5c7..9066df1f 100644
--- a/app.min.css
+++ b/app.min.css
@@ -1 +1 @@
-:root{--small-gap:2rem;--gap:2.5rem;--y-gap:8rem;--wide:140rem;--narrow:80rem;--side:calc((var(--wide) - var(--narrow)) / 2);--header:10rem;--footer:calc(8rem + var(--safe-bottom));--code-bg:#282828;--narrow-separator:0.2rem;color-scheme:light dark;--light:light-dark(#efefef, #161616);--dark:light-dark(#161616, #efefef);--safe-bottom:0}@supports(bottom:constant(safe-area-inset-bottom)){:root{--safe-bottom:constant(safe-area-inset-bottom)}}@supports(bottom:env(safe-area-inset-bottom)){:root{--safe-bottom:env(safe-area-inset-bottom)}}.site-name>svg{width:18rem;fill:var(--dark)}.math{padding:var(--gap);text-align:center}*,*::before,*::after{box-sizing:border-box;padding:0;margin:0;border:0}math *{padding:revert}html,body{height:100%}html{-webkit-tap-highlight-color:transparent;font-size:8px}search{margin-bottom:var(--gap);button { background: transparent; } input::placeholder { opacity: .5; }}body{--white:var(--light);--black:var(--dark);--pro:var(--dark);--lit:color-mix(in lab, var(--dark) 64%, transparent);--air:color-mix(in lab, var(--dark) 48%, transparent);--fog:color-mix(in lab, var(--dark) 12%, transparent);--faint:color-mix(in lab, var(--dark) 5%, transparent);--pagefind-ui-text:var(--pro) !important;--pagefind-ui-primary:var(--pro) !important;--pagefind-ui-background:var(--white) !important;--pagefind-ui-border:var(--fog) !important;--pagefind-ui-font:-apple-system, BlinkMacSystemFont, segoe ui, Roboto, Oxygen, Ubuntu, Cantarell, open sans, helvetica neue, sans-serif !important;--pagefind-ui-tag:var(--faint) !important;display:flex;flex-direction:column;padding:0 var(--gap);font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:2rem;line-height:1.8;color:var(--pro);word-break:break-word;background:var(--white)}body>*{flex-shrink:0;width:100%;margin-inline:auto}@media(max-width:1199px){html{font-size:7px}}abbr[title]{border-bottom:var(--narrow-separator)dotted;text-decoration:none}video{border-radius:1rem}math{font-family:LatinModern;font-size:2.5rem}.katex:has(math[display=block]){display:block;overflow-x:auto;overflow-y:clip}.collapsable-explanation{input { opacity: 0; position: absolute; } div:nth-last-child(1 of .highlight) { display: none; } &:has(input:checked) { div:nth-last-child(1 of .highlight) { display: block; } p, .highlight { display: none; } .container label { border: var(--narrow-separator) solid var(--pro); &::after { content: 'Expand explanation'; } } } .container { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; label { transition: border-color 200ms; border: var(--narrow-separator) solid var(--fog); padding: var(--narrow-separator) var(--small-gap); border-radius: var(--gap); &::after { content: 'Collapse explanation'; } } &:first-child { margin-bottom: var(--gap); } &:last-child { margin: var(--gap) 0 var(--y-gap) 0; } &::before { content: ''; height: var(--narrow-separator); flex: 1; background: var(--fog); } }}.list-tag{background:var(--faint);color:var(--lit);padding:.25rem .75rem;border-radius:.5rem;z-index:3;position:relative;&::before { content:' '; position:absolute; z-index:1; }}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:700;line-height:1.2}strong,b{font-weight:700}a{color:inherit;text-decoration:none}table{width:100%;border-collapse:collapse}button,input,textarea{font:inherit;background:0 0;outline:none!important}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 6rem var(--white)inset}img{display:block;max-width:100%}header{max-width:var(--wide);margin-top:var(--gap);display:flex;align-items:center;border-radius:1rem;outline:.25rem solid var(--fog);position:relative;padding:var(--small-gap);gap:1rem;justify-content:space-between;nav { gap: 1rem; a { width: 4rem; height: 4rem; position: relative; &:after { width: 3rem; height: 3rem; top: .5rem; left: .5rem; background: var(--black); mask-image: var(--url); mask-repeat: no-repeat; mask-size: cover; } } } nav a:after, &:after { z-index: -100; content: ""; position: absolute; } &:after { width: 100%; height: 100%; left: 0; background: var(--fog); mask-image: url('header.svg'); mask-size: 24rem; } a.active { outline: 2px solid var(--air); border-radius: 50%; }}main{max-width:var(--narrow);flex:1;padding-top:var(--gap);padding-bottom:var(--y-gap)}nav[data-main]{justify-content:space-between;margin-top:var(--gap);a { font-size: 1.8rem; line-height: 5.5rem; font-weight: 500; background: var(--faint); color: var(--lit); border-radius: 0.5rem; padding-inline: 3rem; &[href="#"] { visibility: hidden; } }}article{position:relative;padding-block:2rem;transition:transform .1s;&:active { transform:scale(0.99); } h2 { margin-bottom:0.2rem; font-size:3rem; } time { flex-shrink:0; font-size:1.7rem; color:var(--air); }}.post-link{position:absolute;inset:0}hgroup{margin-bottom:var(--y-gap);p { display: flex; margin-top: 0.4rem; margin-bottom: 1.1rem; font-size: 1.6rem; color: var(--air); } p span::before { content: '·'; margin-inline: 0.8rem; } h1 { font-size: 5rem; }}.post-tags{margin-top:var(--y-gap);a { display: inline-block; font-weight: 500; line-height: 5rem; color: var(--lit); background: var(--faint); border-radius: 0.5rem; padding-inline: 2rem; } a+a { margin-left: 0.5rem; margin-bottom: 0.8rem; }}nav{display:flex}nav[data-post]{justify-content:space-between;margin-top:var(--y-gap);background:var(--faint);border-radius:.5rem;a { display: flex; gap: 1rem; align-items: center; width: 50%; padding: var(--gap); font-size: 2.4rem; font-weight: 700; line-height: 1.2; padding-inline: 1rem; } a:nth-child(2) { justify-content: flex-end; margin-left: auto; }}.post-comments{margin-top:var(--y-gap)}@media(max-width:1199px){.post-title{display:block;aside { flex-direction: row; width: auto; padding-right: 0; margin-bottom: 0.5rem; margin-left: 0; transform: none; span::before { content: '·'; margin-inline: 0.5rem; } }}}.post-content{font-size:2.2rem;h1, h2, h3, h4, h5, h6 { margin-block: 2rem; } h1 { margin-top: var(--y-gap); font-size: 4.5rem; } h2 { margin-top: 6rem; font-size: 3.5rem; } h3 { font-size: 3rem; } h4 { font-size: 2.5rem; } h5 { font-size: 2.2rem; } h6 { font-size: 1.8rem; } img { margin-inline: auto; } a { padding-bottom: 0.2rem; font-weight: 500; border-bottom: 2px solid var(--pro); code { margin-inline: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } } del { text-decoration: none; background: linear-gradient(to right, var(--pro) 100%, transparent 0) 0 50% / 1px 1px repeat-x; } p, ul, ol, dl, details { margin-bottom: 3rem; } ul, ol { padding-left: 2.5rem; } li { margin-top: 0.6rem; } dl { display: flex; flex-wrap: wrap; margin: 0; } dt { width: 25%; font-weight: 500; } dd { width: 75%; padding-left: 1.3rem; margin-left: 0; } dt~dt, dd~dd { margin-top: 1.3rem; } table { margin-bottom: 4rem; th { font-size: 2.6rem; text-align: left; } th, td { word-break: normal; padding: 1.5rem 1rem; line-height: 1.5; border-bottom: 1px solid var(--fog); } td:has(code) { inline-size: var(--wide); word-break: break-all; overflow-wrap: break-word; } td code:only-of-type { margin-inline: 0; } } .highlight, pre { margin: 0 0 3rem; border-radius: 0.5rem; @media screen and (width <= 600px) { margin: 0 calc(var(--gap) * -1) 4rem; border-radius: 0; } overflow-x: auto; background: var(--code-bg) !important; } ul pre { margin-left: calc(var(--gap) * -2); } .highlight pre { margin-inline: 0; margin-bottom: 0; } code { padding: 0.5rem 1rem; margin-inline: 0.5rem; font-family: Menlo, Monaco, 'Courier New', Courier, monospace; font-size: 0.8em; line-height: 1.5; background: var(--faint); border-radius: 0.3rem; } pre code { display: block; padding: var(--gap); margin-inline: 0; color: rgba(255, 255, 255, 0.8); background: transparent; border-radius: 0; } blockquote { padding: 0 0 0 calc(var(--gap) - 0.4rem); margin: 0 0 0 calc(var(--gap) * -1); border-left: 0.4rem solid var(--pro); } hr { height: var(--narrow-separator); background: var(--fog); margin-block: 12rem; } iframe { width: 100%; background: var(--black); }}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;max-width:var(--narrow);height:var(--footer);padding-bottom:var(--safe-bottom);margin-top:auto;font-size:1.6rem;color:var(--lit);border-top:1px solid var(--fog);p+p::before { content: '·'; margin-inline: 0.6rem; } a:hover { color: var(--pro); border-bottom: 1px solid var(--pro); }}.title-404{align-content:center;text-align:center;height:100%;font-size:16rem}@font-face{font-family:LatinModern;src:url(latinmodern-math.otf);font-display:swap}
\ No newline at end of file
+:root{--small-gap:2rem;--gap:2.5rem;--y-gap:8rem;--wide:140rem;--narrow:80rem;--side:calc((var(--wide) - var(--narrow)) / 2);--header:10rem;--footer:calc(8rem + var(--safe-bottom));--code-bg:#282828;--narrow-separator:0.2rem;color-scheme:light dark;--light:light-dark(#efefef, #161616);--dark:light-dark(#161616, #efefef);--safe-bottom:0}@supports(bottom:constant(safe-area-inset-bottom)){:root{--safe-bottom:constant(safe-area-inset-bottom)}}@supports(bottom:env(safe-area-inset-bottom)){:root{--safe-bottom:env(safe-area-inset-bottom)}}.site-name>svg{width:18rem;fill:var(--dark)}.math{padding:var(--gap);text-align:center}*,*::before,*::after{box-sizing:border-box;padding:0;margin:0;border:0}html,body{height:100%}html{font-size:8px}::selection{background:var(--fog)}search{margin-bottom:var(--gap);button { background: transparent; } input::placeholder { opacity: .5; }}body{--white:var(--light);--black:var(--dark);--pro:var(--dark);--lit:color-mix(in lab, var(--dark) 64%, transparent);--air:color-mix(in lab, var(--dark) 48%, transparent);--fog:color-mix(in lab, var(--dark) 12%, transparent);--faint:color-mix(in lab, var(--dark) 5%, transparent);--pagefind-ui-text:var(--pro) !important;--pagefind-ui-primary:var(--pro) !important;--pagefind-ui-background:var(--white) !important;--pagefind-ui-border:var(--fog) !important;--pagefind-ui-font:-apple-system, BlinkMacSystemFont, segoe ui, Roboto, Oxygen, Ubuntu, Cantarell, open sans, helvetica neue, sans-serif !important;--pagefind-ui-tag:var(--faint) !important;display:flex;flex-direction:column;padding:0 var(--gap);font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:2rem;line-height:1.8;color:var(--pro);word-break:break-word;background:var(--white);> * { flex-shrink: 0; width: 100%; margin-inline: auto; }}@media(max-width:1199px){html{font-size:7px}}abbr[title]{border-bottom:var(--narrow-separator)dotted;text-decoration:none}video{border-radius:1rem}math{ *{ padding: revert; } font-family: LatinModern;font-size:2.5rem}.katex:has(math[display=block]){display:block;overflow-x:auto;overflow-y:clip}.collapsable-explanation{input { opacity: 0; position: absolute; } div:nth-last-child(1 of .highlight) { display: none; } &:has(input:checked) { div:nth-last-child(1 of .highlight) { display: block; } p, .highlight { display: none; } .container label { border: var(--narrow-separator) solid var(--pro); &::after { content: 'Expand explanation'; } } } .container { display: flex; justify-content: flex-end; align-items: center; gap: 1rem; label { transition: border-color 200ms; border: var(--narrow-separator) solid var(--fog); padding: var(--narrow-separator) var(--small-gap); border-radius: var(--gap); &::after { content: 'Collapse explanation'; } } &:first-child { margin-bottom: var(--gap); } &:last-child { margin: var(--gap) 0 var(--y-gap) 0; } &::before { content: ''; height: var(--narrow-separator); flex: 1; background: var(--fog); } }}.list-tag{background:var(--faint);color:var(--lit);padding:.25rem .75rem;border-radius:.5rem;z-index:3;position:relative;&::before { content:' '; position:absolute; z-index:1; }}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:700;line-height:1.2}strong,b{font-weight:700}a{color:inherit;text-decoration:none}table{width:100%;border-collapse:collapse}button,input,textarea{font:inherit;background:0 0;outline:none!important}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 6rem var(--white)inset}img{display:block;max-width:100%}header{max-width:var(--wide);margin-top:var(--gap);display:flex;align-items:center;border-radius:1rem;outline:.25rem solid var(--fog);position:relative;padding:var(--small-gap);gap:1rem;justify-content:space-between;nav { gap: 1rem; a { width: 4rem; height: 4rem; position: relative; &:after { width: 3rem; height: 3rem; top: .5rem; left: .5rem; background: var(--black); mask-image: var(--url); mask-repeat: no-repeat; mask-size: cover; } } } nav a:after, &:after { z-index: -100; content: ""; position: absolute; } &:after { width: 100%; height: 100%; left: 0; background: var(--fog); mask-image: url('header.svg'); mask-size: 24rem; } a.active { outline: 2px solid var(--air); border-radius: 50%; }}main{max-width:var(--narrow);flex:1;padding-top:var(--gap);padding-bottom:var(--y-gap)}nav[data-main]{justify-content:space-between;margin-top:var(--gap);a { font-size: 1.8rem; line-height: 5.5rem; font-weight: 500; background: var(--faint); color: var(--lit); border-radius: 0.5rem; padding-inline: 3rem; &[href="#"] { visibility: hidden; } }}article{position:relative;padding-block:2rem;transition:transform .1s;&:active { transform:scale(0.99); } h2 { margin-bottom:0.2rem; font-size:3rem; } time { flex-shrink:0; font-size:1.7rem; color:var(--air); } img { margin:auto; }}.post-link{position:absolute;inset:0}hgroup{margin-bottom:var(--y-gap);p { display: flex; margin-top: 0.4rem; margin-bottom: 1.1rem; font-size: 1.6rem; color: var(--air); } p span::before { content: '·'; margin-inline: 0.8rem; } h1 { font-size: 5rem; }}.post-tags{margin-top:var(--y-gap);a { display: inline-block; font-weight: 500; line-height: 5rem; color: var(--lit); background: var(--faint); border-radius: 0.5rem; padding-inline: 2rem; } a+a { margin-left: 0.5rem; margin-bottom: 0.8rem; }}nav{display:flex}nav[data-post]{justify-content:space-between;margin-top:var(--y-gap);background:var(--faint);border-radius:.5rem;a { display: flex; gap: 1rem; align-items: center; width: 50%; padding: var(--gap); font-size: 2.4rem; font-weight: 700; line-height: 1.2; padding-inline: 1rem; } a:nth-child(2) { justify-content: flex-end; margin-left: auto; }}.post-comments{margin-top:var(--y-gap)}@media(max-width:1199px){.post-title{display:block;aside { flex-direction: row; width: auto; padding-right: 0; margin-bottom: 0.5rem; margin-left: 0; transform: none; span::before { content: '·'; margin-inline: 0.5rem; } }}}.post-content{font-size:2.2rem;h1, h2, h3, h4, h5, h6 { margin-block: 2rem; } h1 { margin-top: var(--y-gap); font-size: 4.5rem; } h2 { margin-top: 6rem; font-size: 3.5rem; } h3 { font-size: 3rem; } h4 { font-size: 2.5rem; } h5 { font-size: 2.2rem; } h6 { font-size: 1.8rem; } img { margin-inline: auto; } a { padding-bottom: 0.2rem; font-weight: 500; border-bottom: 2px solid var(--pro); code { margin-inline: 0; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } } del { text-decoration: none; background: linear-gradient(to right, var(--pro) 100%, transparent 0) 0 50% / 1px 1px repeat-x; } p, ul, ol, dl, details { margin-bottom: 3rem; } ul, ol { padding-left: 2.5rem; } li { margin-top: 0.6rem; } dl { display: flex; flex-wrap: wrap; margin: 0; } dt { width: 25%; font-weight: 500; } dd { width: 75%; padding-left: 1.3rem; margin-left: 0; } dt~dt, dd~dd { margin-top: 1.3rem; } table { margin-bottom: 4rem; th { font-size: 2.6rem; text-align: left; } th, td { word-break: normal; padding: 1.5rem 1rem; line-height: 1.5; border-bottom: 1px solid var(--fog); } td:has(code) { inline-size: var(--wide); word-break: break-all; overflow-wrap: break-word; } td code:only-of-type { margin-inline: 0; } } .highlight, pre { margin: 0 0 3rem; border-radius: 0.5rem; @media screen and (width <= 600px) { margin: 0 calc(var(--gap) * -1) 4rem; border-radius: 0; } overflow-x: auto; background: var(--code-bg) !important; } ul pre { margin-left: calc(var(--gap) * -2); } .highlight pre { margin-inline: 0; margin-bottom: 0; } code { padding: 0.5rem 1rem; margin-inline: 0.5rem; font-family: Menlo, Monaco, 'Courier New', Courier, monospace; font-size: 0.8em; line-height: 1.5; background: var(--faint); border-radius: 0.3rem; } pre code { display: block; padding: var(--gap); margin-inline: 0; color: rgba(255, 255, 255, 0.8); background: transparent; border-radius: 0; } blockquote { padding: 0 0 0 calc(var(--gap) - 0.4rem); margin: 0 0 0 calc(var(--gap) * -1); border-left: 0.4rem solid var(--pro); } hr { height: var(--narrow-separator); background: var(--fog); margin-block: 12rem; } iframe { width: 100%; background: var(--black); }}.footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;max-width:var(--narrow);height:var(--footer);padding-bottom:var(--safe-bottom);margin-top:auto;font-size:1.6rem;color:var(--lit);border-top:1px solid var(--fog);p+p::before { content: '·'; margin-inline: 0.6rem; } a:hover { color: var(--pro); border-bottom: 1px solid var(--pro); }}.title-404{align-content:center;text-align:center;height:100%;font-size:16rem}@font-face{font-family:LatinModern;src:url(latinmodern-math.otf);font-display:swap}
\ No newline at end of file
diff --git a/art/drawhearts/index.html b/art/drawhearts/index.html
new file mode 100644
index 00000000..ff42e2ae
--- /dev/null
+++ b/art/drawhearts/index.html
@@ -0,0 +1,9 @@
+
Step to the (heart) beat - lavafroth Jan 18, 2026
Step to the (heart) beat My first procedurally generated animation drawing concentric heart
+growing from the center of the screen. The source code for the
+program used to create this piece is available on my GitHub .
I tinkered around for quite a while before discovering that I can intersect two x y xy skewed ellipses
+with the modulus operator. Here’s my custom equation for the heart shape.
x 2 + y 2 − ∣ x ∣ y = r x^2 + y^2 - |x|y = r have fun!
\ No newline at end of file
diff --git a/art/index.html b/art/index.html
index 5de34489..d5182a69 100644
--- a/art/index.html
+++ b/art/index.html
@@ -2,7 +2,8 @@
Attribution-ShareAlike 4.0 International
license unless
specified otherwise. Please read the legal code before redistributing, adapting
-or remixing them.✨
+or remixing them.Step to the (heart) beat
+✨
Amateur Blender Sculpture
Drowning
This Error
diff --git a/art/index.xml b/art/index.xml
index 895f388f..fd44fb9c 100644
--- a/art/index.xml
+++ b/art/index.xml
@@ -1,4 +1,9 @@
-Art on lavafroth https://lavafroth.is-a.dev/art/Recent content in Art on lavafroth Hugo en-us Tue, 15 Jul 2025 11:52:20 +0530 ✨ https://lavafroth.is-a.dev/art/sparkles/Tue, 15 Jul 2025 11:52:20 +0530 https://lavafroth.is-a.dev/art/sparkles/ Amateur Blender Sculpture https://lavafroth.is-a.dev/art/amateur-blender-sculpture/Sat, 03 Aug 2024 17:50:00 +0530 https://lavafroth.is-a.dev/art/amateur-blender-sculpture/ <p>This is my first time trying out sculpting in blender, so forgive me for the
+Art on lavafroth https://lavafroth.is-a.dev/art/Recent content in Art on lavafroth Hugo en-us Sun, 18 Jan 2026 08:06:06 +0530 Step to the (heart) beat https://lavafroth.is-a.dev/art/drawhearts/Sun, 18 Jan 2026 08:06:06 +0530 https://lavafroth.is-a.dev/art/drawhearts/ <p>My first procedurally generated animation drawing concentric heart
+growing from the center of the screen. The source code for the
+program used to create this piece is <a href="https://github.com/lavafroth/drawhearts">available on my GitHub</a>.</p>
+<p>I tinkered around for quite a while before discovering that I can intersect two <span class="katex"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>x</mi><mi>y</mi></mrow><annotation encoding="application/x-tex">xy</annotation></semantics></math></span> skewed ellipses
+with the modulus operator. Here’s my custom equation for the heart shape.</p>
+<span class="katex"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo>−</mo><mi mathvariant="normal">∣</mi><mi>x</mi><mi mathvariant="normal">∣</mi><mi>y</mi><mo>=</mo><mi>r</mi></mrow><annotation encoding="application/x-tex"> x^2 + y^2 - |x|y = r </annotation></semantics></math></span><p>have fun!</p> ✨ https://lavafroth.is-a.dev/art/sparkles/Tue, 15 Jul 2025 11:52:20 +0530 https://lavafroth.is-a.dev/art/sparkles/ Amateur Blender Sculpture https://lavafroth.is-a.dev/art/amateur-blender-sculpture/Sat, 03 Aug 2024 17:50:00 +0530 https://lavafroth.is-a.dev/art/amateur-blender-sculpture/ <p>This is my first time trying out sculpting in blender, so forgive me for the
quality of the sculpt. I’m still pretty much in the learning stage. Big thank
you to <a href="https://www.pexels.com/@nichole-sebastian-1592975/">Nichole Sebastian</a>
for the reference photo. Also apologies if the empty eye sockets gave you a
diff --git a/hearts.avif b/hearts.avif
new file mode 100644
index 00000000..f2ec20f0
Binary files /dev/null and b/hearts.avif differ
diff --git a/index.html b/index.html
index e9068c2b..f34cd535 100644
--- a/index.html
+++ b/index.html
@@ -1,4 +1,4 @@
-lavafroth Working With LUKS File Stashes Jan 1, 2026 | 2 minutes read Linux
+lavafroth Working With LUKS File Stashes Jan 1, 2026 | 2 minutes read Linux
LUKS
Cryptography
Algebraic Python Enums Nov 2, 2025 | 5 minutes read Python
diff --git a/index.xml b/index.xml
index 5f068bba..8a578dbb 100644
--- a/index.xml
+++ b/index.xml
@@ -1,4 +1,9 @@
-lavafroth https://lavafroth.is-a.dev/Recent content on lavafroth Hugo en-us Thu, 01 Jan 2026 07:24:36 +0530 Working With LUKS File Stashes https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/Thu, 01 Jan 2026 07:24:36 +0530 https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/ <p>LUKS is an incredible solution for encrypting entire partitions in Linux.
+lavafroth https://lavafroth.is-a.dev/Recent content on lavafroth Hugo en-us Sun, 18 Jan 2026 08:06:06 +0530 Step to the (heart) beat https://lavafroth.is-a.dev/art/drawhearts/Sun, 18 Jan 2026 08:06:06 +0530 https://lavafroth.is-a.dev/art/drawhearts/ <p>My first procedurally generated animation drawing concentric heart
+growing from the center of the screen. The source code for the
+program used to create this piece is <a href="https://github.com/lavafroth/drawhearts">available on my GitHub</a>.</p>
+<p>I tinkered around for quite a while before discovering that I can intersect two <span class="katex"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>x</mi><mi>y</mi></mrow><annotation encoding="application/x-tex">xy</annotation></semantics></math></span> skewed ellipses
+with the modulus operator. Here’s my custom equation for the heart shape.</p>
+<span class="katex"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>+</mo><msup><mi>y</mi><mn>2</mn></msup><mo>−</mo><mi mathvariant="normal">∣</mi><mi>x</mi><mi mathvariant="normal">∣</mi><mi>y</mi><mo>=</mo><mi>r</mi></mrow><annotation encoding="application/x-tex"> x^2 + y^2 - |x|y = r </annotation></semantics></math></span><p>have fun!</p> Working With LUKS File Stashes https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/Thu, 01 Jan 2026 07:24:36 +0530 https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/ <p>LUKS is an incredible solution for encrypting entire partitions in Linux.
Often times, however, we can’t afford to create new partitions inside a disk
without having to completely format the drive anew.</p>
<p>This post will guide you through the process of creating and working
diff --git a/page/2/index.html b/page/2/index.html
index bcaac449..3ad79033 100644
--- a/page/2/index.html
+++ b/page/2/index.html
@@ -1,4 +1,4 @@
-lavafroth NixOS Secureboot Shenanigans Dec 20, 2024 | 3 minutes read Nix
+lavafroth NixOS Secureboot Shenanigans Dec 20, 2024 | 3 minutes read Nix
NixOS
Secureboot
sbctl
diff --git a/page/3/index.html b/page/3/index.html
index c042234d..dbc77f1d 100644
--- a/page/3/index.html
+++ b/page/3/index.html
@@ -1,4 +1,4 @@
-lavafroth Modeling More Realistic Keybinds With Modifiers Jun 5, 2024 | 4 minutes read EBNF
+lavafroth Modeling More Realistic Keybinds With Modifiers Jun 5, 2024 | 4 minutes read EBNF
Google Summer of Code
Rust
SWHKD
diff --git a/page/4/index.html b/page/4/index.html
index 9b2e3ae2..d8671830 100644
--- a/page/4/index.html
+++ b/page/4/index.html
@@ -1,4 +1,4 @@
-lavafroth Headache Sep 7, 2023 | 3 minutes read AmateursCTF
+lavafroth Headache Sep 7, 2023 | 3 minutes read AmateursCTF
CTF
Reverse Engineering
Compact XOR Aug 24, 2023 | 2 minutes read AmateursCTF
diff --git a/page/5/index.html b/page/5/index.html
index f36220dd..07c1dbed 100644
--- a/page/5/index.html
+++ b/page/5/index.html
@@ -1,4 +1,4 @@
-lavafroth Pixelated Nov 22, 2022 | 2 minutes read Cryptography
+lavafroth Pixelated Nov 22, 2022 | 2 minutes read Cryptography
CTF
Image Reconstruction
PicoCTF
diff --git a/page/6/index.html b/page/6/index.html
index bfd74036..4602a4fd 100644
--- a/page/6/index.html
+++ b/page/6/index.html
@@ -1,4 +1,4 @@
-lavafroth JAuth Feb 22, 2022 | 2 minutes read Authentication Bypass
+lavafroth JAuth Feb 22, 2022 | 2 minutes read Authentication Bypass
CTF
JWT
PicoCTF
diff --git a/pagefind/index/en-us_319b959.pf_index b/pagefind/index/en-us_319b959.pf_index
deleted file mode 100644
index a250bca6..00000000
Binary files a/pagefind/index/en-us_319b959.pf_index and /dev/null differ
diff --git a/pagefind/index/en-us_3620dac.pf_index b/pagefind/index/en-us_3620dac.pf_index
deleted file mode 100644
index 6b852079..00000000
Binary files a/pagefind/index/en-us_3620dac.pf_index and /dev/null differ
diff --git a/pagefind/index/en-us_63d2bec.pf_index b/pagefind/index/en-us_63d2bec.pf_index
new file mode 100644
index 00000000..06211333
Binary files /dev/null and b/pagefind/index/en-us_63d2bec.pf_index differ
diff --git a/pagefind/index/en-us_74a6fbe.pf_index b/pagefind/index/en-us_74a6fbe.pf_index
deleted file mode 100644
index 6843ea59..00000000
Binary files a/pagefind/index/en-us_74a6fbe.pf_index and /dev/null differ
diff --git a/pagefind/index/en-us_794f68f.pf_index b/pagefind/index/en-us_794f68f.pf_index
new file mode 100644
index 00000000..76ca256d
Binary files /dev/null and b/pagefind/index/en-us_794f68f.pf_index differ
diff --git a/pagefind/index/en-us_8574a93.pf_index b/pagefind/index/en-us_8574a93.pf_index
new file mode 100644
index 00000000..6b3f9144
Binary files /dev/null and b/pagefind/index/en-us_8574a93.pf_index differ
diff --git a/pagefind/index/en-us_8b6399f.pf_index b/pagefind/index/en-us_8b6399f.pf_index
new file mode 100644
index 00000000..f60d689a
Binary files /dev/null and b/pagefind/index/en-us_8b6399f.pf_index differ
diff --git a/pagefind/index/en-us_a544c1d.pf_index b/pagefind/index/en-us_a544c1d.pf_index
deleted file mode 100644
index 2f9b8a34..00000000
Binary files a/pagefind/index/en-us_a544c1d.pf_index and /dev/null differ
diff --git a/pagefind/index/en-us_bafc375.pf_index b/pagefind/index/en-us_bafc375.pf_index
new file mode 100644
index 00000000..54c3773a
Binary files /dev/null and b/pagefind/index/en-us_bafc375.pf_index differ
diff --git a/pagefind/index/en-us_e76a9ee.pf_index b/pagefind/index/en-us_e76a9ee.pf_index
deleted file mode 100644
index a5fd6ba9..00000000
Binary files a/pagefind/index/en-us_e76a9ee.pf_index and /dev/null differ
diff --git a/pagefind/index/en-us_f0bdd6a.pf_index b/pagefind/index/en-us_f0bdd6a.pf_index
new file mode 100644
index 00000000..1f1eea01
Binary files /dev/null and b/pagefind/index/en-us_f0bdd6a.pf_index differ
diff --git a/pagefind/index/en-us_fd9cc0e.pf_index b/pagefind/index/en-us_fd9cc0e.pf_index
deleted file mode 100644
index 78360000..00000000
Binary files a/pagefind/index/en-us_fd9cc0e.pf_index and /dev/null differ
diff --git a/pagefind/pagefind-entry.json b/pagefind/pagefind-entry.json
index 95d99d6d..f1181340 100644
--- a/pagefind/pagefind-entry.json
+++ b/pagefind/pagefind-entry.json
@@ -1 +1 @@
-{"version":"1.0.3","languages":{"en-us":{"hash":"en-us_1dae3ae23f682","wasm":"en-us","page_count":56}}}
\ No newline at end of file
+{"version":"1.0.3","languages":{"en-us":{"hash":"en-us_e3ed9fd3f8c16","wasm":"en-us","page_count":56}}}
\ No newline at end of file
diff --git a/pagefind/pagefind.en-us_1dae3ae23f682.pf_meta b/pagefind/pagefind.en-us_1dae3ae23f682.pf_meta
deleted file mode 100644
index 09655ae7..00000000
Binary files a/pagefind/pagefind.en-us_1dae3ae23f682.pf_meta and /dev/null differ
diff --git a/pagefind/pagefind.en-us_e3ed9fd3f8c16.pf_meta b/pagefind/pagefind.en-us_e3ed9fd3f8c16.pf_meta
new file mode 100644
index 00000000..454cdd19
Binary files /dev/null and b/pagefind/pagefind.en-us_e3ed9fd3f8c16.pf_meta differ
diff --git a/sitemap.xml b/sitemap.xml
index 366d99f7..119273ae 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-https://lavafroth.is-a.dev/tags/cryptography/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/linux/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/luks/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/post/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/algebraic-data-types/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/post/algebraic-python-enums/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/decorators/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/python/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/rust/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/nix/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/tags/nixos/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/post/nixos-notes-to-self/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/tags/notes/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/tags/troubleshooting/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/privacy/ 2025-08-30T09:00:14+05:30 https://lavafroth.is-a.dev/tags//e/os/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/android/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/custom-rom/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/post/changing-recents-provider-on-eos/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/quickstep/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/quickswitch/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/art/sparkles/ 2025-07-15T11:52:20+05:30 https://lavafroth.is-a.dev/art/ 2025-07-15T11:52:20+05:30 https://lavafroth.is-a.dev/post/detecting-stripped-go-binaries/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/go/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/reverse-engieering/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/til/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/ai/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/copilot/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/llm/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/post/do-you-really-need-a-copilot/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/rant/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/bioinformatics/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/dna/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/post/in-search-of-the-smallest-dna-compl/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/linear-algebra/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/remainder-theorem/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/3d/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/animation/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/post/project-mana-demo/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/glsl/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/manim/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/threejs/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/webgl/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/bash/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/tags/ctf/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/tags/picoctf/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/post/picoctf-sansalpha-writeup/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/tags/sandbox-escape/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/post/a-tale-of-a-frugal-home-server/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/automation/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/home-server/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/jellyfin/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/photoprism/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/lanzaboote/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/post/nixos-secureboot-shenanigans/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/tags/sbctl/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/tags/secureboot/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/tags/ebnf/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/google-summer-of-code/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/swhkd/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/waycrate/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/wayland/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/post/the-gsoc-grand-finale/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/cuda/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/tags/machine-learning/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/tags/nvidia/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/post/cuda-on-nixos-without-sacrificing-ones-sanity/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/tags/workflow/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/art/amateur-blender-sculpture/ 2024-08-03T17:50:00+05:30 https://lavafroth.is-a.dev/post/how-i-use-swhkd-in-my-workflow/ 2024-08-01T17:17:31+05:30 https://lavafroth.is-a.dev/tags/video-editing/ 2024-08-01T17:17:31+05:30 https://lavafroth.is-a.dev/post/polishing-and-bugfix-week/ 2024-07-29T13:46:41+05:30 https://lavafroth.is-a.dev/post/humans-suck-at-command-sanitization/ 2024-07-17T07:55:34+05:30 https://lavafroth.is-a.dev/post/preventing-infinite-recursions-from-eating-your-lunch/ 2024-07-04T09:57:01+05:30 https://lavafroth.is-a.dev/post/test-driven-development-the-pinnacle-of-engineering/ 2024-06-24T08:45:49+05:30 https://lavafroth.is-a.dev/art/drowning/ 2024-06-18T09:30:00+05:30 https://lavafroth.is-a.dev/art/thiserror/ 2024-06-18T09:30:00+05:30 https://lavafroth.is-a.dev/post/modes-unbinds-and-other-ensembled-parser-patterns/ 2024-06-10T08:27:06+05:30 https://lavafroth.is-a.dev/post/i-solemnly-swear-to-never-buy-a-gaming-laptop-again/ 2024-06-07T17:01:01+05:30 https://lavafroth.is-a.dev/tags/kernel-modules/ 2024-06-07T17:01:01+05:30 https://lavafroth.is-a.dev/tags/laptops/ 2024-06-07T17:01:01+05:30 https://lavafroth.is-a.dev/post/modeling-more-realistic-keybinds-with-modifiers/ 2024-06-05T10:26:13+05:30 https://lavafroth.is-a.dev/post/edge-cases-you-shall-not-pass/ 2024-06-03T08:18:19+05:30 https://lavafroth.is-a.dev/post/timing-is-key/ 2024-05-29T21:18:22+05:30 https://lavafroth.is-a.dev/post/keep-the-keys-clackin/ 2024-05-27T08:59:29+05:30 https://lavafroth.is-a.dev/post/2-afternoons-2-languages-2-tuis/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/tags/terminal/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/tags/ui/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/tags/youtube/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/post/a-sweet-little-config-parser/ 2024-05-17T07:52:44+05:30 https://lavafroth.is-a.dev/post/wayland-tools-rock/ 2024-05-17T07:52:44+05:30 https://lavafroth.is-a.dev/tags/meta/ 2024-03-10T08:47:08+05:30 https://lavafroth.is-a.dev/post/android-phone-for-webcam-nixos/ 2024-03-10T08:47:08+05:30 https://lavafroth.is-a.dev/art/wip-animation/ 2024-01-19T09:30:00+05:30 https://lavafroth.is-a.dev/tags/binary-exploitation/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/ci-exploitation/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/cloud-security/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/dmarc/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/post/kringlecon-2023-writeup/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/reverse-engineering/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/web/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/post/abstracting-structured-patterns-in-concurrent-programming/ 2023-12-06T10:58:10+05:30 https://lavafroth.is-a.dev/tags/concurrency/ 2023-12-06T10:58:10+05:30 https://lavafroth.is-a.dev/tags/amateursctf/ 2023-09-07T07:03:27+05:30 https://lavafroth.is-a.dev/post/headache-reverse-engineering-amateursctf-2023/ 2023-09-07T07:03:27+05:30 https://lavafroth.is-a.dev/post/compact-xor-crypto-challenge-amateursctf-2023/ 2023-08-24T18:05:59+05:30 https://lavafroth.is-a.dev/post/volcano-reverse-engineering-amateursctf-2023/ 2023-07-21T18:29:59+05:30 https://lavafroth.is-a.dev/tags/cookies/ 2023-07-19T07:53:17+05:30 https://lavafroth.is-a.dev/post/wait-an-eternity-web-challenge-amateursctf-2023/ 2023-07-19T07:53:17+05:30 https://lavafroth.is-a.dev/post/i-switched-to-nixos/ 2023-07-08T09:29:34+05:30 https://lavafroth.is-a.dev/post/picoctf-binary-exploitation-twosum/ 2023-04-10T08:44:28+05:30 https://lavafroth.is-a.dev/tags/java/ 2023-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/post/picoctf-web-java-code-analysis/ 2023-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/jwt/ 2023-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/image-reconstruction/ 2023-03-03T09:47:54+05:30 https://lavafroth.is-a.dev/post/picoctf-web-java-script-kiddie-2/ 2023-03-03T09:47:54+05:30 https://lavafroth.is-a.dev/tags/javascript/ 2023-03-03T09:47:54+05:30 https://lavafroth.is-a.dev/post/picoctf-web-some-assembly-required-3/ 2023-02-09T16:39:08+05:30 https://lavafroth.is-a.dev/tags/webassembly/ 2023-02-09T16:39:08+05:30 https://lavafroth.is-a.dev/post/kringlecon-2022-writeup/ 2023-01-09T10:36:35+05:30 https://lavafroth.is-a.dev/tags/powershell/ 2023-01-09T10:36:35+05:30 https://lavafroth.is-a.dev/tags/wireshark/ 2023-01-09T10:36:35+05:30 https://lavafroth.is-a.dev/post/picoctf-cryptography-pixelated/ 2022-11-22T09:25:20+05:30 https://lavafroth.is-a.dev/tags/visual-cryptography/ 2022-11-22T09:25:20+05:30 https://lavafroth.is-a.dev/tags/ast/ 2022-08-19T10:04:36+05:30 https://lavafroth.is-a.dev/tags/google-ctf/ 2022-08-19T10:04:36+05:30 https://lavafroth.is-a.dev/post/google-ctf-2022-treebox/ 2022-08-19T10:04:36+05:30 https://lavafroth.is-a.dev/tags/elf/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/post/r0-i-saw-a-little-elf/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/tags/ringzer0/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/tags/web-parsing/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/post/r0-hash-me-reloaded/ 2022-08-19T09:57:15+05:30 https://lavafroth.is-a.dev/post/r0-hash-me-please/ 2022-08-19T09:57:00+05:30 https://lavafroth.is-a.dev/tags/nushell/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/post/oh-my-god-they-killed-kenny/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/tags/south-park/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/tags/streaming/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail3/ 2022-07-24T12:29:56+05:30 https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail2/ 2022-07-24T12:28:56+05:30 https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail1/ 2022-07-24T12:27:56+05:30 https://lavafroth.is-a.dev/about/ 2022-07-23T19:11:10+05:30 https://lavafroth.is-a.dev/art/tyler-joseph-portrait/ 2022-07-23T19:07:32+05:30 https://lavafroth.is-a.dev/art/shes-a-rebel/ 2022-04-17T17:01:44+05:30 https://lavafroth.is-a.dev/tags/forensics/ 2022-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/post/picoctf-forensics-operation-oni-operation-orchid/ 2022-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/the-sleuth-kit/ 2022-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/authentication-bypass/ 2022-02-22T14:49:34+05:30 https://lavafroth.is-a.dev/post/picoctf-web-challenge-jauth/ 2022-02-22T14:49:34+05:30 https://lavafroth.is-a.dev/post/liberating-14gib-of-space/ 2022-02-21T13:15:26+05:30 https://lavafroth.is-a.dev/tags/windows/ 2022-02-21T13:15:26+05:30 https://lavafroth.is-a.dev/tags/jinja2/ 2022-02-21T09:24:30+05:30 https://lavafroth.is-a.dev/post/picoctf-web-challenge-notepad/ 2022-02-21T09:24:30+05:30 https://lavafroth.is-a.dev/tags/path-traversal/ 2022-02-21T09:24:30+05:30 https://lavafroth.is-a.dev/post/gadgeting-in-python-jails/ 2021-12-09T09:52:29+05:30 https://lavafroth.is-a.dev/project_mana/
\ No newline at end of file
+https://lavafroth.is-a.dev/art/ 2026-01-18T08:06:06+05:30 https://lavafroth.is-a.dev/ 2026-01-18T08:06:06+05:30 https://lavafroth.is-a.dev/art/drawhearts/ 2026-01-18T08:06:06+05:30 https://lavafroth.is-a.dev/tags/cryptography/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/linux/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/luks/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/post/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/ 2026-01-01T07:24:36+05:30 https://lavafroth.is-a.dev/tags/algebraic-data-types/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/post/algebraic-python-enums/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/decorators/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/python/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/rust/ 2025-11-02T19:08:46+05:30 https://lavafroth.is-a.dev/tags/nix/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/tags/nixos/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/post/nixos-notes-to-self/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/tags/notes/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/tags/troubleshooting/ 2025-09-14T18:31:52+05:30 https://lavafroth.is-a.dev/privacy/ 2025-08-30T09:00:14+05:30 https://lavafroth.is-a.dev/tags//e/os/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/android/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/custom-rom/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/post/changing-recents-provider-on-eos/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/quickstep/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/tags/quickswitch/ 2025-08-20T09:55:43+05:30 https://lavafroth.is-a.dev/art/sparkles/ 2025-07-15T11:52:20+05:30 https://lavafroth.is-a.dev/post/detecting-stripped-go-binaries/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/go/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/reverse-engieering/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/til/ 2025-06-13T08:39:58+05:30 https://lavafroth.is-a.dev/tags/ai/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/copilot/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/llm/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/post/do-you-really-need-a-copilot/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/rant/ 2025-04-03T15:56:04+05:30 https://lavafroth.is-a.dev/tags/bioinformatics/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/dna/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/post/in-search-of-the-smallest-dna-compl/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/linear-algebra/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/remainder-theorem/ 2025-02-14T09:40:11+05:30 https://lavafroth.is-a.dev/tags/3d/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/animation/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/post/project-mana-demo/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/glsl/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/manim/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/threejs/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/webgl/ 2025-01-20T19:41:51+05:30 https://lavafroth.is-a.dev/tags/bash/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/tags/ctf/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/tags/picoctf/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/post/picoctf-sansalpha-writeup/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/tags/sandbox-escape/ 2025-01-05T11:55:52+05:30 https://lavafroth.is-a.dev/post/a-tale-of-a-frugal-home-server/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/automation/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/home-server/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/jellyfin/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/photoprism/ 2025-01-04T10:04:37+05:30 https://lavafroth.is-a.dev/tags/lanzaboote/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/post/nixos-secureboot-shenanigans/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/tags/sbctl/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/tags/secureboot/ 2024-12-20T12:26:10+05:30 https://lavafroth.is-a.dev/tags/ebnf/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/google-summer-of-code/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/swhkd/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/waycrate/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/wayland/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/post/the-gsoc-grand-finale/ 2024-08-24T10:28:50+05:30 https://lavafroth.is-a.dev/tags/cuda/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/tags/machine-learning/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/tags/nvidia/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/post/cuda-on-nixos-without-sacrificing-ones-sanity/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/tags/workflow/ 2024-08-10T08:18:30+05:30 https://lavafroth.is-a.dev/art/amateur-blender-sculpture/ 2024-08-03T17:50:00+05:30 https://lavafroth.is-a.dev/post/how-i-use-swhkd-in-my-workflow/ 2024-08-01T17:17:31+05:30 https://lavafroth.is-a.dev/tags/video-editing/ 2024-08-01T17:17:31+05:30 https://lavafroth.is-a.dev/post/polishing-and-bugfix-week/ 2024-07-29T13:46:41+05:30 https://lavafroth.is-a.dev/post/humans-suck-at-command-sanitization/ 2024-07-17T07:55:34+05:30 https://lavafroth.is-a.dev/post/preventing-infinite-recursions-from-eating-your-lunch/ 2024-07-04T09:57:01+05:30 https://lavafroth.is-a.dev/post/test-driven-development-the-pinnacle-of-engineering/ 2024-06-24T08:45:49+05:30 https://lavafroth.is-a.dev/art/drowning/ 2024-06-18T09:30:00+05:30 https://lavafroth.is-a.dev/art/thiserror/ 2024-06-18T09:30:00+05:30 https://lavafroth.is-a.dev/post/modes-unbinds-and-other-ensembled-parser-patterns/ 2024-06-10T08:27:06+05:30 https://lavafroth.is-a.dev/post/i-solemnly-swear-to-never-buy-a-gaming-laptop-again/ 2024-06-07T17:01:01+05:30 https://lavafroth.is-a.dev/tags/kernel-modules/ 2024-06-07T17:01:01+05:30 https://lavafroth.is-a.dev/tags/laptops/ 2024-06-07T17:01:01+05:30 https://lavafroth.is-a.dev/post/modeling-more-realistic-keybinds-with-modifiers/ 2024-06-05T10:26:13+05:30 https://lavafroth.is-a.dev/post/edge-cases-you-shall-not-pass/ 2024-06-03T08:18:19+05:30 https://lavafroth.is-a.dev/post/timing-is-key/ 2024-05-29T21:18:22+05:30 https://lavafroth.is-a.dev/post/keep-the-keys-clackin/ 2024-05-27T08:59:29+05:30 https://lavafroth.is-a.dev/post/2-afternoons-2-languages-2-tuis/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/tags/terminal/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/tags/ui/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/tags/youtube/ 2024-05-23T18:37:47+05:30 https://lavafroth.is-a.dev/post/a-sweet-little-config-parser/ 2024-05-17T07:52:44+05:30 https://lavafroth.is-a.dev/post/wayland-tools-rock/ 2024-05-17T07:52:44+05:30 https://lavafroth.is-a.dev/tags/meta/ 2024-03-10T08:47:08+05:30 https://lavafroth.is-a.dev/post/android-phone-for-webcam-nixos/ 2024-03-10T08:47:08+05:30 https://lavafroth.is-a.dev/art/wip-animation/ 2024-01-19T09:30:00+05:30 https://lavafroth.is-a.dev/tags/binary-exploitation/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/ci-exploitation/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/cloud-security/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/dmarc/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/post/kringlecon-2023-writeup/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/reverse-engineering/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/tags/web/ 2024-01-10T19:51:32+05:30 https://lavafroth.is-a.dev/post/abstracting-structured-patterns-in-concurrent-programming/ 2023-12-06T10:58:10+05:30 https://lavafroth.is-a.dev/tags/concurrency/ 2023-12-06T10:58:10+05:30 https://lavafroth.is-a.dev/tags/amateursctf/ 2023-09-07T07:03:27+05:30 https://lavafroth.is-a.dev/post/headache-reverse-engineering-amateursctf-2023/ 2023-09-07T07:03:27+05:30 https://lavafroth.is-a.dev/post/compact-xor-crypto-challenge-amateursctf-2023/ 2023-08-24T18:05:59+05:30 https://lavafroth.is-a.dev/post/volcano-reverse-engineering-amateursctf-2023/ 2023-07-21T18:29:59+05:30 https://lavafroth.is-a.dev/tags/cookies/ 2023-07-19T07:53:17+05:30 https://lavafroth.is-a.dev/post/wait-an-eternity-web-challenge-amateursctf-2023/ 2023-07-19T07:53:17+05:30 https://lavafroth.is-a.dev/post/i-switched-to-nixos/ 2023-07-08T09:29:34+05:30 https://lavafroth.is-a.dev/post/picoctf-binary-exploitation-twosum/ 2023-04-10T08:44:28+05:30 https://lavafroth.is-a.dev/tags/java/ 2023-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/post/picoctf-web-java-code-analysis/ 2023-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/jwt/ 2023-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/image-reconstruction/ 2023-03-03T09:47:54+05:30 https://lavafroth.is-a.dev/post/picoctf-web-java-script-kiddie-2/ 2023-03-03T09:47:54+05:30 https://lavafroth.is-a.dev/tags/javascript/ 2023-03-03T09:47:54+05:30 https://lavafroth.is-a.dev/post/picoctf-web-some-assembly-required-3/ 2023-02-09T16:39:08+05:30 https://lavafroth.is-a.dev/tags/webassembly/ 2023-02-09T16:39:08+05:30 https://lavafroth.is-a.dev/post/kringlecon-2022-writeup/ 2023-01-09T10:36:35+05:30 https://lavafroth.is-a.dev/tags/powershell/ 2023-01-09T10:36:35+05:30 https://lavafroth.is-a.dev/tags/wireshark/ 2023-01-09T10:36:35+05:30 https://lavafroth.is-a.dev/post/picoctf-cryptography-pixelated/ 2022-11-22T09:25:20+05:30 https://lavafroth.is-a.dev/tags/visual-cryptography/ 2022-11-22T09:25:20+05:30 https://lavafroth.is-a.dev/tags/ast/ 2022-08-19T10:04:36+05:30 https://lavafroth.is-a.dev/tags/google-ctf/ 2022-08-19T10:04:36+05:30 https://lavafroth.is-a.dev/post/google-ctf-2022-treebox/ 2022-08-19T10:04:36+05:30 https://lavafroth.is-a.dev/tags/elf/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/post/r0-i-saw-a-little-elf/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/tags/ringzer0/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/tags/web-parsing/ 2022-08-19T09:57:34+05:30 https://lavafroth.is-a.dev/post/r0-hash-me-reloaded/ 2022-08-19T09:57:15+05:30 https://lavafroth.is-a.dev/post/r0-hash-me-please/ 2022-08-19T09:57:00+05:30 https://lavafroth.is-a.dev/tags/nushell/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/post/oh-my-god-they-killed-kenny/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/tags/south-park/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/tags/streaming/ 2022-08-02T09:26:51+05:30 https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail3/ 2022-07-24T12:29:56+05:30 https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail2/ 2022-07-24T12:28:56+05:30 https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail1/ 2022-07-24T12:27:56+05:30 https://lavafroth.is-a.dev/about/ 2022-07-23T19:11:10+05:30 https://lavafroth.is-a.dev/art/tyler-joseph-portrait/ 2022-07-23T19:07:32+05:30 https://lavafroth.is-a.dev/art/shes-a-rebel/ 2022-04-17T17:01:44+05:30 https://lavafroth.is-a.dev/tags/forensics/ 2022-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/post/picoctf-forensics-operation-oni-operation-orchid/ 2022-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/the-sleuth-kit/ 2022-03-18T07:10:17+05:30 https://lavafroth.is-a.dev/tags/authentication-bypass/ 2022-02-22T14:49:34+05:30 https://lavafroth.is-a.dev/post/picoctf-web-challenge-jauth/ 2022-02-22T14:49:34+05:30 https://lavafroth.is-a.dev/post/liberating-14gib-of-space/ 2022-02-21T13:15:26+05:30 https://lavafroth.is-a.dev/tags/windows/ 2022-02-21T13:15:26+05:30 https://lavafroth.is-a.dev/tags/jinja2/ 2022-02-21T09:24:30+05:30 https://lavafroth.is-a.dev/post/picoctf-web-challenge-notepad/ 2022-02-21T09:24:30+05:30 https://lavafroth.is-a.dev/tags/path-traversal/ 2022-02-21T09:24:30+05:30 https://lavafroth.is-a.dev/post/gadgeting-in-python-jails/ 2021-12-09T09:52:29+05:30 https://lavafroth.is-a.dev/project_mana/
\ No newline at end of file