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 xyxy skewed ellipses +with the modulus operator. Here’s my custom equation for the heart shape.

x2+y2xy=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 lavafrothhttps://lavafroth.is-a.dev/art/Recent content in Art on lavafrothHugoen-usTue, 15 Jul 2025 11:52:20 +0530https://lavafroth.is-a.dev/art/sparkles/Tue, 15 Jul 2025 11:52:20 +0530https://lavafroth.is-a.dev/art/sparkles/Amateur Blender Sculpturehttps://lavafroth.is-a.dev/art/amateur-blender-sculpture/Sat, 03 Aug 2024 17:50:00 +0530https://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 lavafrothhttps://lavafroth.is-a.dev/art/Recent content in Art on lavafrothHugoen-usSun, 18 Jan 2026 08:06:06 +0530Step to the (heart) beathttps://lavafroth.is-a.dev/art/drawhearts/Sun, 18 Jan 2026 08:06:06 +0530https://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&rsquo;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 +0530https://lavafroth.is-a.dev/art/sparkles/Amateur Blender Sculpturehttps://lavafroth.is-a.dev/art/amateur-blender-sculpture/Sat, 03 Aug 2024 17:50:00 +0530https://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&rsquo;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


Linux +lavafroth

Algebraic Python Enums


Python diff --git a/index.xml b/index.xml index 5f068bba..8a578dbb 100644 --- a/index.xml +++ b/index.xml @@ -1,4 +1,9 @@ -lavafrothhttps://lavafroth.is-a.dev/Recent content on lavafrothHugoen-usThu, 01 Jan 2026 07:24:36 +0530Working With LUKS File Stasheshttps://lavafroth.is-a.dev/post/working-with-luks-file-stashes/Thu, 01 Jan 2026 07:24:36 +0530https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/<p>LUKS is an incredible solution for encrypting entire partitions in Linux. +lavafrothhttps://lavafroth.is-a.dev/Recent content on lavafrothHugoen-usSun, 18 Jan 2026 08:06:06 +0530Step to the (heart) beathttps://lavafroth.is-a.dev/art/drawhearts/Sun, 18 Jan 2026 08:06:06 +0530https://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&rsquo;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 Stasheshttps://lavafroth.is-a.dev/post/working-with-luks-file-stashes/Thu, 01 Jan 2026 07:24:36 +0530https://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&rsquo;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


Nix +lavafroth

NixOS Secureboot Shenanigans


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


EBNF +lavafroth

Modeling More Realistic Keybinds With Modifiers


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


AmateursCTF +lavafroth

Compact XOR


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


Cryptography +lavafroth

Pixelated


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


Authentication Bypass +lavafroth

JAuth


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:30https://lavafroth.is-a.dev/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/linux/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/luks/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/post/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/algebraic-data-types/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/post/algebraic-python-enums/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/decorators/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/python/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/rust/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/nix/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/tags/nixos/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/post/nixos-notes-to-self/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/tags/notes/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/tags/troubleshooting/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/privacy/2025-08-30T09:00:14+05:30https://lavafroth.is-a.dev/tags//e/os/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/android/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/custom-rom/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/post/changing-recents-provider-on-eos/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/quickstep/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/quickswitch/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/art/sparkles/2025-07-15T11:52:20+05:30https://lavafroth.is-a.dev/art/2025-07-15T11:52:20+05:30https://lavafroth.is-a.dev/post/detecting-stripped-go-binaries/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/go/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/reverse-engieering/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/til/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/ai/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/copilot/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/llm/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/post/do-you-really-need-a-copilot/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/rant/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/bioinformatics/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/dna/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/post/in-search-of-the-smallest-dna-compl/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/linear-algebra/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/remainder-theorem/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/3d/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/animation/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/post/project-mana-demo/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/glsl/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/manim/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/threejs/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/webgl/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/bash/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/tags/ctf/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/tags/picoctf/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/post/picoctf-sansalpha-writeup/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/tags/sandbox-escape/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/post/a-tale-of-a-frugal-home-server/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/automation/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/home-server/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/jellyfin/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/photoprism/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/lanzaboote/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/post/nixos-secureboot-shenanigans/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/tags/sbctl/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/tags/secureboot/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/tags/ebnf/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/google-summer-of-code/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/swhkd/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/waycrate/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/wayland/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/post/the-gsoc-grand-finale/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/cuda/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/tags/machine-learning/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/tags/nvidia/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/post/cuda-on-nixos-without-sacrificing-ones-sanity/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/tags/workflow/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/art/amateur-blender-sculpture/2024-08-03T17:50:00+05:30https://lavafroth.is-a.dev/post/how-i-use-swhkd-in-my-workflow/2024-08-01T17:17:31+05:30https://lavafroth.is-a.dev/tags/video-editing/2024-08-01T17:17:31+05:30https://lavafroth.is-a.dev/post/polishing-and-bugfix-week/2024-07-29T13:46:41+05:30https://lavafroth.is-a.dev/post/humans-suck-at-command-sanitization/2024-07-17T07:55:34+05:30https://lavafroth.is-a.dev/post/preventing-infinite-recursions-from-eating-your-lunch/2024-07-04T09:57:01+05:30https://lavafroth.is-a.dev/post/test-driven-development-the-pinnacle-of-engineering/2024-06-24T08:45:49+05:30https://lavafroth.is-a.dev/art/drowning/2024-06-18T09:30:00+05:30https://lavafroth.is-a.dev/art/thiserror/2024-06-18T09:30:00+05:30https://lavafroth.is-a.dev/post/modes-unbinds-and-other-ensembled-parser-patterns/2024-06-10T08:27:06+05:30https://lavafroth.is-a.dev/post/i-solemnly-swear-to-never-buy-a-gaming-laptop-again/2024-06-07T17:01:01+05:30https://lavafroth.is-a.dev/tags/kernel-modules/2024-06-07T17:01:01+05:30https://lavafroth.is-a.dev/tags/laptops/2024-06-07T17:01:01+05:30https://lavafroth.is-a.dev/post/modeling-more-realistic-keybinds-with-modifiers/2024-06-05T10:26:13+05:30https://lavafroth.is-a.dev/post/edge-cases-you-shall-not-pass/2024-06-03T08:18:19+05:30https://lavafroth.is-a.dev/post/timing-is-key/2024-05-29T21:18:22+05:30https://lavafroth.is-a.dev/post/keep-the-keys-clackin/2024-05-27T08:59:29+05:30https://lavafroth.is-a.dev/post/2-afternoons-2-languages-2-tuis/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/tags/terminal/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/tags/ui/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/tags/youtube/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/post/a-sweet-little-config-parser/2024-05-17T07:52:44+05:30https://lavafroth.is-a.dev/post/wayland-tools-rock/2024-05-17T07:52:44+05:30https://lavafroth.is-a.dev/tags/meta/2024-03-10T08:47:08+05:30https://lavafroth.is-a.dev/post/android-phone-for-webcam-nixos/2024-03-10T08:47:08+05:30https://lavafroth.is-a.dev/art/wip-animation/2024-01-19T09:30:00+05:30https://lavafroth.is-a.dev/tags/binary-exploitation/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/ci-exploitation/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/cloud-security/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/dmarc/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/post/kringlecon-2023-writeup/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/reverse-engineering/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/web/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/post/abstracting-structured-patterns-in-concurrent-programming/2023-12-06T10:58:10+05:30https://lavafroth.is-a.dev/tags/concurrency/2023-12-06T10:58:10+05:30https://lavafroth.is-a.dev/tags/amateursctf/2023-09-07T07:03:27+05:30https://lavafroth.is-a.dev/post/headache-reverse-engineering-amateursctf-2023/2023-09-07T07:03:27+05:30https://lavafroth.is-a.dev/post/compact-xor-crypto-challenge-amateursctf-2023/2023-08-24T18:05:59+05:30https://lavafroth.is-a.dev/post/volcano-reverse-engineering-amateursctf-2023/2023-07-21T18:29:59+05:30https://lavafroth.is-a.dev/tags/cookies/2023-07-19T07:53:17+05:30https://lavafroth.is-a.dev/post/wait-an-eternity-web-challenge-amateursctf-2023/2023-07-19T07:53:17+05:30https://lavafroth.is-a.dev/post/i-switched-to-nixos/2023-07-08T09:29:34+05:30https://lavafroth.is-a.dev/post/picoctf-binary-exploitation-twosum/2023-04-10T08:44:28+05:30https://lavafroth.is-a.dev/tags/java/2023-03-18T07:10:17+05:30https://lavafroth.is-a.dev/post/picoctf-web-java-code-analysis/2023-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/jwt/2023-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/image-reconstruction/2023-03-03T09:47:54+05:30https://lavafroth.is-a.dev/post/picoctf-web-java-script-kiddie-2/2023-03-03T09:47:54+05:30https://lavafroth.is-a.dev/tags/javascript/2023-03-03T09:47:54+05:30https://lavafroth.is-a.dev/post/picoctf-web-some-assembly-required-3/2023-02-09T16:39:08+05:30https://lavafroth.is-a.dev/tags/webassembly/2023-02-09T16:39:08+05:30https://lavafroth.is-a.dev/post/kringlecon-2022-writeup/2023-01-09T10:36:35+05:30https://lavafroth.is-a.dev/tags/powershell/2023-01-09T10:36:35+05:30https://lavafroth.is-a.dev/tags/wireshark/2023-01-09T10:36:35+05:30https://lavafroth.is-a.dev/post/picoctf-cryptography-pixelated/2022-11-22T09:25:20+05:30https://lavafroth.is-a.dev/tags/visual-cryptography/2022-11-22T09:25:20+05:30https://lavafroth.is-a.dev/tags/ast/2022-08-19T10:04:36+05:30https://lavafroth.is-a.dev/tags/google-ctf/2022-08-19T10:04:36+05:30https://lavafroth.is-a.dev/post/google-ctf-2022-treebox/2022-08-19T10:04:36+05:30https://lavafroth.is-a.dev/tags/elf/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/post/r0-i-saw-a-little-elf/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/tags/ringzer0/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/tags/web-parsing/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/post/r0-hash-me-reloaded/2022-08-19T09:57:15+05:30https://lavafroth.is-a.dev/post/r0-hash-me-please/2022-08-19T09:57:00+05:30https://lavafroth.is-a.dev/tags/nushell/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/post/oh-my-god-they-killed-kenny/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/tags/south-park/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/tags/streaming/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail3/2022-07-24T12:29:56+05:30https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail2/2022-07-24T12:28:56+05:30https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail1/2022-07-24T12:27:56+05:30https://lavafroth.is-a.dev/about/2022-07-23T19:11:10+05:30https://lavafroth.is-a.dev/art/tyler-joseph-portrait/2022-07-23T19:07:32+05:30https://lavafroth.is-a.dev/art/shes-a-rebel/2022-04-17T17:01:44+05:30https://lavafroth.is-a.dev/tags/forensics/2022-03-18T07:10:17+05:30https://lavafroth.is-a.dev/post/picoctf-forensics-operation-oni-operation-orchid/2022-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/the-sleuth-kit/2022-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/authentication-bypass/2022-02-22T14:49:34+05:30https://lavafroth.is-a.dev/post/picoctf-web-challenge-jauth/2022-02-22T14:49:34+05:30https://lavafroth.is-a.dev/post/liberating-14gib-of-space/2022-02-21T13:15:26+05:30https://lavafroth.is-a.dev/tags/windows/2022-02-21T13:15:26+05:30https://lavafroth.is-a.dev/tags/jinja2/2022-02-21T09:24:30+05:30https://lavafroth.is-a.dev/post/picoctf-web-challenge-notepad/2022-02-21T09:24:30+05:30https://lavafroth.is-a.dev/tags/path-traversal/2022-02-21T09:24:30+05:30https://lavafroth.is-a.dev/post/gadgeting-in-python-jails/2021-12-09T09:52:29+05:30https://lavafroth.is-a.dev/project_mana/ \ No newline at end of file +https://lavafroth.is-a.dev/art/2026-01-18T08:06:06+05:30https://lavafroth.is-a.dev/2026-01-18T08:06:06+05:30https://lavafroth.is-a.dev/art/drawhearts/2026-01-18T08:06:06+05:30https://lavafroth.is-a.dev/tags/cryptography/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/linux/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/luks/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/post/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/post/working-with-luks-file-stashes/2026-01-01T07:24:36+05:30https://lavafroth.is-a.dev/tags/algebraic-data-types/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/post/algebraic-python-enums/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/decorators/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/python/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/rust/2025-11-02T19:08:46+05:30https://lavafroth.is-a.dev/tags/nix/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/tags/nixos/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/post/nixos-notes-to-self/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/tags/notes/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/tags/troubleshooting/2025-09-14T18:31:52+05:30https://lavafroth.is-a.dev/privacy/2025-08-30T09:00:14+05:30https://lavafroth.is-a.dev/tags//e/os/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/android/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/custom-rom/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/post/changing-recents-provider-on-eos/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/quickstep/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/tags/quickswitch/2025-08-20T09:55:43+05:30https://lavafroth.is-a.dev/art/sparkles/2025-07-15T11:52:20+05:30https://lavafroth.is-a.dev/post/detecting-stripped-go-binaries/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/go/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/reverse-engieering/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/til/2025-06-13T08:39:58+05:30https://lavafroth.is-a.dev/tags/ai/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/copilot/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/llm/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/post/do-you-really-need-a-copilot/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/rant/2025-04-03T15:56:04+05:30https://lavafroth.is-a.dev/tags/bioinformatics/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/dna/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/post/in-search-of-the-smallest-dna-compl/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/linear-algebra/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/remainder-theorem/2025-02-14T09:40:11+05:30https://lavafroth.is-a.dev/tags/3d/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/animation/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/post/project-mana-demo/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/glsl/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/manim/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/threejs/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/webgl/2025-01-20T19:41:51+05:30https://lavafroth.is-a.dev/tags/bash/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/tags/ctf/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/tags/picoctf/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/post/picoctf-sansalpha-writeup/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/tags/sandbox-escape/2025-01-05T11:55:52+05:30https://lavafroth.is-a.dev/post/a-tale-of-a-frugal-home-server/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/automation/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/home-server/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/jellyfin/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/photoprism/2025-01-04T10:04:37+05:30https://lavafroth.is-a.dev/tags/lanzaboote/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/post/nixos-secureboot-shenanigans/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/tags/sbctl/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/tags/secureboot/2024-12-20T12:26:10+05:30https://lavafroth.is-a.dev/tags/ebnf/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/google-summer-of-code/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/swhkd/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/waycrate/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/wayland/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/post/the-gsoc-grand-finale/2024-08-24T10:28:50+05:30https://lavafroth.is-a.dev/tags/cuda/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/tags/machine-learning/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/tags/nvidia/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/post/cuda-on-nixos-without-sacrificing-ones-sanity/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/tags/workflow/2024-08-10T08:18:30+05:30https://lavafroth.is-a.dev/art/amateur-blender-sculpture/2024-08-03T17:50:00+05:30https://lavafroth.is-a.dev/post/how-i-use-swhkd-in-my-workflow/2024-08-01T17:17:31+05:30https://lavafroth.is-a.dev/tags/video-editing/2024-08-01T17:17:31+05:30https://lavafroth.is-a.dev/post/polishing-and-bugfix-week/2024-07-29T13:46:41+05:30https://lavafroth.is-a.dev/post/humans-suck-at-command-sanitization/2024-07-17T07:55:34+05:30https://lavafroth.is-a.dev/post/preventing-infinite-recursions-from-eating-your-lunch/2024-07-04T09:57:01+05:30https://lavafroth.is-a.dev/post/test-driven-development-the-pinnacle-of-engineering/2024-06-24T08:45:49+05:30https://lavafroth.is-a.dev/art/drowning/2024-06-18T09:30:00+05:30https://lavafroth.is-a.dev/art/thiserror/2024-06-18T09:30:00+05:30https://lavafroth.is-a.dev/post/modes-unbinds-and-other-ensembled-parser-patterns/2024-06-10T08:27:06+05:30https://lavafroth.is-a.dev/post/i-solemnly-swear-to-never-buy-a-gaming-laptop-again/2024-06-07T17:01:01+05:30https://lavafroth.is-a.dev/tags/kernel-modules/2024-06-07T17:01:01+05:30https://lavafroth.is-a.dev/tags/laptops/2024-06-07T17:01:01+05:30https://lavafroth.is-a.dev/post/modeling-more-realistic-keybinds-with-modifiers/2024-06-05T10:26:13+05:30https://lavafroth.is-a.dev/post/edge-cases-you-shall-not-pass/2024-06-03T08:18:19+05:30https://lavafroth.is-a.dev/post/timing-is-key/2024-05-29T21:18:22+05:30https://lavafroth.is-a.dev/post/keep-the-keys-clackin/2024-05-27T08:59:29+05:30https://lavafroth.is-a.dev/post/2-afternoons-2-languages-2-tuis/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/tags/terminal/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/tags/ui/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/tags/youtube/2024-05-23T18:37:47+05:30https://lavafroth.is-a.dev/post/a-sweet-little-config-parser/2024-05-17T07:52:44+05:30https://lavafroth.is-a.dev/post/wayland-tools-rock/2024-05-17T07:52:44+05:30https://lavafroth.is-a.dev/tags/meta/2024-03-10T08:47:08+05:30https://lavafroth.is-a.dev/post/android-phone-for-webcam-nixos/2024-03-10T08:47:08+05:30https://lavafroth.is-a.dev/art/wip-animation/2024-01-19T09:30:00+05:30https://lavafroth.is-a.dev/tags/binary-exploitation/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/ci-exploitation/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/cloud-security/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/dmarc/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/post/kringlecon-2023-writeup/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/reverse-engineering/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/tags/web/2024-01-10T19:51:32+05:30https://lavafroth.is-a.dev/post/abstracting-structured-patterns-in-concurrent-programming/2023-12-06T10:58:10+05:30https://lavafroth.is-a.dev/tags/concurrency/2023-12-06T10:58:10+05:30https://lavafroth.is-a.dev/tags/amateursctf/2023-09-07T07:03:27+05:30https://lavafroth.is-a.dev/post/headache-reverse-engineering-amateursctf-2023/2023-09-07T07:03:27+05:30https://lavafroth.is-a.dev/post/compact-xor-crypto-challenge-amateursctf-2023/2023-08-24T18:05:59+05:30https://lavafroth.is-a.dev/post/volcano-reverse-engineering-amateursctf-2023/2023-07-21T18:29:59+05:30https://lavafroth.is-a.dev/tags/cookies/2023-07-19T07:53:17+05:30https://lavafroth.is-a.dev/post/wait-an-eternity-web-challenge-amateursctf-2023/2023-07-19T07:53:17+05:30https://lavafroth.is-a.dev/post/i-switched-to-nixos/2023-07-08T09:29:34+05:30https://lavafroth.is-a.dev/post/picoctf-binary-exploitation-twosum/2023-04-10T08:44:28+05:30https://lavafroth.is-a.dev/tags/java/2023-03-18T07:10:17+05:30https://lavafroth.is-a.dev/post/picoctf-web-java-code-analysis/2023-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/jwt/2023-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/image-reconstruction/2023-03-03T09:47:54+05:30https://lavafroth.is-a.dev/post/picoctf-web-java-script-kiddie-2/2023-03-03T09:47:54+05:30https://lavafroth.is-a.dev/tags/javascript/2023-03-03T09:47:54+05:30https://lavafroth.is-a.dev/post/picoctf-web-some-assembly-required-3/2023-02-09T16:39:08+05:30https://lavafroth.is-a.dev/tags/webassembly/2023-02-09T16:39:08+05:30https://lavafroth.is-a.dev/post/kringlecon-2022-writeup/2023-01-09T10:36:35+05:30https://lavafroth.is-a.dev/tags/powershell/2023-01-09T10:36:35+05:30https://lavafroth.is-a.dev/tags/wireshark/2023-01-09T10:36:35+05:30https://lavafroth.is-a.dev/post/picoctf-cryptography-pixelated/2022-11-22T09:25:20+05:30https://lavafroth.is-a.dev/tags/visual-cryptography/2022-11-22T09:25:20+05:30https://lavafroth.is-a.dev/tags/ast/2022-08-19T10:04:36+05:30https://lavafroth.is-a.dev/tags/google-ctf/2022-08-19T10:04:36+05:30https://lavafroth.is-a.dev/post/google-ctf-2022-treebox/2022-08-19T10:04:36+05:30https://lavafroth.is-a.dev/tags/elf/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/post/r0-i-saw-a-little-elf/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/tags/ringzer0/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/tags/web-parsing/2022-08-19T09:57:34+05:30https://lavafroth.is-a.dev/post/r0-hash-me-reloaded/2022-08-19T09:57:15+05:30https://lavafroth.is-a.dev/post/r0-hash-me-please/2022-08-19T09:57:00+05:30https://lavafroth.is-a.dev/tags/nushell/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/post/oh-my-god-they-killed-kenny/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/tags/south-park/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/tags/streaming/2022-08-02T09:26:51+05:30https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail3/2022-07-24T12:29:56+05:30https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail2/2022-07-24T12:28:56+05:30https://lavafroth.is-a.dev/post/ringzer0ctf-bash-jail1/2022-07-24T12:27:56+05:30https://lavafroth.is-a.dev/about/2022-07-23T19:11:10+05:30https://lavafroth.is-a.dev/art/tyler-joseph-portrait/2022-07-23T19:07:32+05:30https://lavafroth.is-a.dev/art/shes-a-rebel/2022-04-17T17:01:44+05:30https://lavafroth.is-a.dev/tags/forensics/2022-03-18T07:10:17+05:30https://lavafroth.is-a.dev/post/picoctf-forensics-operation-oni-operation-orchid/2022-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/the-sleuth-kit/2022-03-18T07:10:17+05:30https://lavafroth.is-a.dev/tags/authentication-bypass/2022-02-22T14:49:34+05:30https://lavafroth.is-a.dev/post/picoctf-web-challenge-jauth/2022-02-22T14:49:34+05:30https://lavafroth.is-a.dev/post/liberating-14gib-of-space/2022-02-21T13:15:26+05:30https://lavafroth.is-a.dev/tags/windows/2022-02-21T13:15:26+05:30https://lavafroth.is-a.dev/tags/jinja2/2022-02-21T09:24:30+05:30https://lavafroth.is-a.dev/post/picoctf-web-challenge-notepad/2022-02-21T09:24:30+05:30https://lavafroth.is-a.dev/tags/path-traversal/2022-02-21T09:24:30+05:30https://lavafroth.is-a.dev/post/gadgeting-in-python-jails/2021-12-09T09:52:29+05:30https://lavafroth.is-a.dev/project_mana/ \ No newline at end of file