{
    "items": [
        {
            "type": [
                "h-card"
            ],
            "properties": {
                "name": [
                    "Vika"
                ],
                "pronoun": [
                    "she/her"
                ],
                "note": [
                    "Programmer, trans, an IndieWeb addict. Doesn't know if she's real or merely a vestige of a past long gone. Opinions are my own and do not represent opinions of any of my employers, past, present, or future. If I start to shill some cryptocurrency project, RUN \u2014 this is not me."
                ],
                "photo": [
                    {
                        "value": "https://fireburn.ru/.kittybox/media/uploads/fe/ad/f8/76/e94e284444605135ad468b1563070dac3d2ad642c366b1e180f6eb65",
                        "alt": "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors"
                    }
                ],
                "url": [
                    "https://fireburn.ru/",
                    "https://vikanezrimaya.xyz/",
                    "https://matrix.to/#/@vika:fireburn.ru",
                    "at://vikanezrimaya.xyz"
                ],
                "uid": [
                    "https://fireburn.ru/"
                ]
            }
        },
        {
            "type": [
                "h-feed"
            ],
            "properties": {
                "name": [
                    "Main feed"
                ]
            },
            "children": [
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika",
                            "https://fireburn.ru/"
                        ],
                        "like-of": [
                            "https://brennenputh.me/blog/printable-websites/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dRq5w4n"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dRq5w4n"
                        ],
                        "published": [
                            "2026-10-26T15:21:21.887894117+03:00"
                        ],
                        "name": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika \u2764\ufe0f https://brennenputh.me/blog/printable-websites/ on Mon Oct 26 15:21:21 2026"
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "category": [
                            "tech"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dRpyjyz"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dRpyjyz"
                        ],
                        "published": [
                            "2026-10-26T14:55:29.939957436+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>All of the VPNs and censorship circumvention and the rotting infrastructure slow my internet speed down to the point of unusability. Websites take seconds to load, apps can spin and throb for a while before showing something, my messenger may just randomly decide to stall picture downloads\u2026</p>\n<p>I feel like I can't believe we had proper internet speeds back when I was young. Things\u2026 just worked. Without me having to fiddle with tunnels, DNS settings, routing, circumvention, obfuscation and such.</p>\n<p>I am definitely getting tired. But what can I even do?</p>",
                                "value": "All of the VPNs and censorship circumvention and the rotting infrastructure slow my internet speed down to the point of unusability. Websites take seconds to load, apps can spin and throb for a while before showing something, my messenger may just randomly decide to stall picture downloads\u2026\nI feel like I can't believe we had proper internet speeds back when I was young. Things\u2026 just worked. Without me having to fiddle with tunnels, DNS settings, routing, circumvention, obfuscation and such.\nI am definitely getting tired. But what can I even do?"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "category": [
                            "Go",
                            "Rust",
                            "cryptography",
                            "programming"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dRGKNsh"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dRGKNsh"
                        ],
                        "published": [
                            "2026-10-21T13:45:46.362827407+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>Should I look into Go? Its stdlib packing strong cryptographic primitives is like a siren call to me. But the notion of a garbage collector is off-putting \u2014 I've had bad experiences with garbage collection in memory-constrained scenarios.</p>\n<p>If only I could have a strong stdlib like that in Rust\u2026</p>",
                                "value": "Should I look into Go? Its stdlib packing strong cryptographic primitives is like a siren call to me. But the notion of a garbage collector is off-putting \u2014 I've had bad experiences with garbage collection in memory-constrained scenarios.\nIf only I could have a strong stdlib like that in Rust\u2026"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "category": [
                            "IndieAuth"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dRGErn7"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dRGErn7"
                        ],
                        "published": [
                            "2026-10-21T13:29:30.427535769+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>TIL CUPS supports OIDC bearer tokens for auth.</p>\n<p>Cursed idea for an in-person IndieWeb hackerspace: log in with your website to print. IndieAuth flows into an indielogin.com-style OIDC mediator.</p>\n<p>Responsibilities split as follows: website attests its owner's identity, the OIDC mediator layer translates it into a single point of verification CUPS could understand. The OIDC layer could potentially be also responsible for assigning privilege layers to some and not others \u2014 e.g. limit paper quotas for some users, or allow somebody to access the admin interface with the hackerspace website IndieAuth proving ownership of the hackerspace itself.</p>",
                                "value": "TIL CUPS supports OIDC bearer tokens for auth.\nCursed idea for an in-person IndieWeb hackerspace: log in with your website to print. IndieAuth flows into an indielogin.com-style OIDC mediator.\nResponsibilities split as follows: website attests its owner's identity, the OIDC mediator layer translates it into a single point of verification CUPS could understand. The OIDC layer could potentially be also responsible for assigning privilege layers to some and not others \u2014 e.g. limit paper quotas for some users, or allow somebody to access the admin interface with the hackerspace website IndieAuth proving ownership of the hackerspace itself."
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika",
                            "https://fireburn.ru/"
                        ],
                        "like-of": [
                            "https://aaronparecki.com/2026/10/17/5/rebuilding-my-indieweb-projects"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dQxrS4N"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dQxrS4N"
                        ],
                        "published": [
                            "2026-10-18T19:17:09.862744634+03:00"
                        ],
                        "name": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika \u2764\ufe0f Why I'm rebuilding my IndieWeb projects with Claude on Sun Oct 18 19:17:09 2026"
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "category": [
                            "vent"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dPt87E3"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dPt87E3"
                        ],
                        "published": [
                            "2026-10-09T02:17:14.043149626+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>i hate \"fixing things\". i just want my computer to work.</p>\n<p>i don't think i wanted to code for the sake of coding. i just wanted tools that work.</p>\n<p>i'm tired of fixing others' things so that my things just work.</p>",
                                "value": "i hate \"fixing things\". i just want my computer to work.\ni don't think i wanted to code for the sake of coding. i just wanted tools that work.\ni'm tired of fixing others' things so that my things just work."
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "name": [
                            "Get rid of spam with this one simple trick~"
                        ],
                        "category": [
                            "notmuch",
                            "email"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dJKrphg"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dJKrphg"
                        ],
                        "published": [
                            "2026-08-20T02:30:34.961660426+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>For future reference: a great way to see the hosts sending the most spam emails in the last month.</p>\n<p>Assumes spam email is either manually tagged on sight or automatically classified (rspamd/SpamAssassin?) and then appropriately marked so that the tagging script for notmuch correctly tags it.</p>\n<pre><code class=\"language-bash\">notmuch search --output=files tag:spam AND date:last.month.. | xargs grep -m 1 -h \"^Received:\" | sort | uniq -c | sort -rn\n</code></pre>\n<p>Then just put the record holders into your nftables firewall and sleep soundly. And yes, there are record holders in my spam folder! Some spammers are apparently so dumb they set up (or take over?) one email host and just blast their worthless junk out. Maybe I should start blasting back abuse complaints to their ISPs~</p>",
                                "value": "For future reference: a great way to see the hosts sending the most spam emails in the last month.\nAssumes spam email is either manually tagged on sight or automatically classified (rspamd/SpamAssassin?) and then appropriately marked so that the tagging script for notmuch correctly tags it. notmuch search --output=files tag:spam AND date:last.month.. | xargs grep -m 1 -h \"^Received:\" | sort | uniq -c | sort -rn\nThen just put the record holders into your nftables firewall and sleep soundly. And yes, there are record holders in my spam folder! Some spammers are apparently so dumb they set up (or take over?) one email host and just blast their worthless junk out. Maybe I should start blasting back abuse complaints to their ISPs~"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dHq2fet"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dHq2fet"
                        ],
                        "published": [
                            "2026-08-15T15:09:38.393805754+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>ok no it's fine i figured it out</p>\n<p>archive.org couldn't reach my website for some time and cached its down status</p>\n<p>but Save Page Now worked flawlessly thanks to me <em>not</em> blocking archivers from my blog &lt;3</p>\n<p>no <code>robots.txt</code> \u2014 winners keep winning~ though i think most modern archivists tend to ignore it anyway lmao</p>",
                                "value": "ok no it's fine i figured it out\narchive.org couldn't reach my website for some time and cached its down status\nbut Save Page Now worked flawlessly thanks to me not blocking archivers from my blog <3\nno robots.txt \u2014 winners keep winning~ though i think most modern archivists tend to ignore it anyway lmao"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dHpzEgi"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dHpzEgi"
                        ],
                        "published": [
                            "2026-08-15T14:57:16.903414703+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>did i just fucking jinx myself</p>\n<p>why can't the web archive reach my website</p>\n<p>aaaaaaaa</p>",
                                "value": "did i just fucking jinx myself\nwhy can't the web archive reach my website\naaaaaaaa"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "name": [
                            "Domain in peril"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dHpyTXV"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dHpyTXV"
                        ],
                        "published": [
                            "2026-08-15T14:54:27.089218757+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>It looks like this domain is in peril.</p>\n<p>The Russian government has made a law that you have to be identified via \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 to be able to manage a domain in the \".ru\" zone. Well, guess what, it's two weeks before the deadline, and I'm not up-to-date on this.</p>\n<p>I have a working \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 account. I could tie it to my registrar. There's just one hitch. The domain registrar still has my deadname on file and they don't seem to want to update it. And I can't bind my \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 to a domain which isn't registered \"in my name\" (meaning the data has to match).</p>\n<p>Well, partially this is on me, I guess, I should've been more proactive in managing my domain owner info. But can you blame a girl for only learning about all this around July? And it all worked just fine before, the registrar for whatever reason didn't even care that the passport on file was <em>expired, like, five renewal terms ago</em>.</p>\n<p>But now the form that updates one's owner data is silently eating my documents with zero feedback and I feel like I'll have to message support (which I did) and wait for their reply.</p>\n<p>I guess the 14-year old me made a mistake when trusting my country with something so precious. And now I am paying the price for her lapse in judgement (but how could she have known?!)</p>\n<h2>What do I stand to lose?</h2>\n<p>Thankfully, the domain's not gonna be cancelled, but if I don't manage to update all of the data and bind the \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 account in time, I may not able to renew it when winter comes. And this means I lose the domain in around 5 months. Let's try to enumerate what will be impacted:</p>\n<h3>E-mail</h3>\n<p>Thankfully, my email is self-hosted. My archives are going to be fine. But the ability to <em>receive</em> email may be compromised as a result. And when some services don't allow changing your email address, because somebody had a bright idea of using email as primary key, that might be a problem.</p>\n<p>I'll need to compile a list of services I've ever registered on and see if any of them could accept an alternative email address.</p>\n<p>Oh, and I'll have to put MX records on my other domain, probably. I think I could just route them to the same underlying mail server; Reverse-DNS could throw a spanner in the works, but surely one could work around that?\u2026 I'll need more research on this topic.</p>\n<h3>Blog permalinks</h3>\n<p>I've been linked around the web. I'm no celebrity, but I think there could be a few dozen permalinks on the Internet that will inevitably break if I have to move domains. Some of them are on publicly-editable websites, and I could update them; some of them are <em>not</em> and the website owners will have to put in the work.</p>\n<p>Hopefully my website was crawled by the Web Archive? I'll need to test that~ I don't think I ever put on a <code>robots.txt</code> on the apex, so there should be nothing preventing archive.org from crawling my permalinks.</p>\n<h3>IndieAuth</h3>\n<p>This domain is my <a href=\"https://indieweb.org/IndieAuth\">IndieAuth</a> identity. And while the website itself will be forever preserved (and could move to another domain if needed), I'm not sure how IndieAuth consumers might handle my <code>me</code> value changing.</p>\n<p>I planned to do roughly the following:</p>\n<ul>\n<li>Migrate my blog to another domain</li>\n<li>Put an IndieAuth shim onto this domain that redirects to the new location of my blog</li>\n<li>Try logging in around the web (mostly the IndieAuth wiki)</li>\n<li>Seeing if initiating the ceremony with <code>https://fireburn.ru/</code> and ending it with <code>me=\"https://vikanezrimaya.xyz/\"</code> is gonna be handled correctly</li>\n</ul>\n<p>The answer to the last bullet point: <em>probably not</em>. As far as I understand (and I've written two or three IndieAuth implementations <em>from scratch</em>, so I know a thing or two about the protocol), the domain is the root of identity, and a different <code>me</code> value <em>is a different user entirely</em>. This is how someone on a multi-identity website could log in with the root of their website and get to an <em>identity selector</em> that would allow them to choose the hat to wear for this sign-in. Every single persona is a different IndieAuth identity, because it's a different URL. And I don't know if any software would interpret something like a 301 redirect from a <code>me</code> value as a sign that it will need to be replaced \u2014 after all, somebody could be using <code>me</code> as the primary key (see the \"E-mail\" section above!).</p>\n<h3>Memories</h3>\n<p>Well, those will remain. As long as the archives have crawled my blog. As long as I live. But it's still gonna be sad to lose such a memento \u2014 a domain I owned almost since the day I gained a semblance of legal personhood in form of a passport and a bank card.</p>\n<p>I even messaged the support of my registrar back in the day, asking if one needed to be of age to register the domain. \"No\", they said, \"having a passport and a valid payment method are the only requirements\". It was a small window into the world for me \u2014 a place of my own.</p>\n<p><em>I don't want to lose it.</em> \ud83d\ude2d</p>\n<h2>Afterword</h2>\n<p>If anything happens. If this page disappears from the internet. Look for me at <a href=\"https://vikanezrimaya.xyz\">vikanezrimaya.xyz</a> \u2014 I promise I'll try hard not to lose that one.</p>\n<p>I'll make sure this page is crawled by the Archive as soon as I post it, so this forever remains in history even if the domain were to be lost.</p>",
                                "value": "It looks like this domain is in peril.\nThe Russian government has made a law that you have to be identified via \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 to be able to manage a domain in the \".ru\" zone. Well, guess what, it's two weeks before the deadline, and I'm not up-to-date on this.\nI have a working \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 account. I could tie it to my registrar. There's just one hitch. The domain registrar still has my deadname on file and they don't seem to want to update it. And I can't bind my \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 to a domain which isn't registered \"in my name\" (meaning the data has to match).\nWell, partially this is on me, I guess, I should've been more proactive in managing my domain owner info. But can you blame a girl for only learning about all this around July? And it all worked just fine before, the registrar for whatever reason didn't even care that the passport on file was expired, like, five renewal terms ago.\nBut now the form that updates one's owner data is silently eating my documents with zero feedback and I feel like I'll have to message support (which I did) and wait for their reply.\nI guess the 14-year old me made a mistake when trusting my country with something so precious. And now I am paying the price for her lapse in judgement (but how could she have known?!) What do I stand to lose?\nThankfully, the domain's not gonna be cancelled, but if I don't manage to update all of the data and bind the \u0413\u043e\u0441\u0443\u0441\u043b\u0443\u0433\u0438 account in time, I may not able to renew it when winter comes. And this means I lose the domain in around 5 months. Let's try to enumerate what will be impacted: E-mail\nThankfully, my email is self-hosted. My archives are going to be fine. But the ability to receive email may be compromised as a result. And when some services don't allow changing your email address, because somebody had a bright idea of using email as primary key, that might be a problem.\nI'll need to compile a list of services I've ever registered on and see if any of them could accept an alternative email address.\nOh, and I'll have to put MX records on my other domain, probably. I think I could just route them to the same underlying mail server; Reverse-DNS could throw a spanner in the works, but surely one could work around that?\u2026 I'll need more research on this topic. Blog permalinks\nI've been linked around the web. I'm no celebrity, but I think there could be a few dozen permalinks on the Internet that will inevitably break if I have to move domains. Some of them are on publicly-editable websites, and I could update them; some of them are not and the website owners will have to put in the work.\nHopefully my website was crawled by the Web Archive? I'll need to test that~ I don't think I ever put on a robots.txt on the apex, so there should be nothing preventing archive.org from crawling my permalinks. IndieAuth\nThis domain is my IndieAuth identity. And while the website itself will be forever preserved (and could move to another domain if needed), I'm not sure how IndieAuth consumers might handle my me value changing.\nI planned to do roughly the following: Migrate my blog to another domain Put an IndieAuth shim onto this domain that redirects to the new location of my blog Try logging in around the web (mostly the IndieAuth wiki) Seeing if initiating the ceremony with https://fireburn.ru/ and ending it with me=\"https://vikanezrimaya.xyz/\" is gonna be handled correctly\nThe answer to the last bullet point: probably not. As far as I understand (and I've written two or three IndieAuth implementations from scratch, so I know a thing or two about the protocol), the domain is the root of identity, and a different me value is a different user entirely. This is how someone on a multi-identity website could log in with the root of their website and get to an identity selector that would allow them to choose the hat to wear for this sign-in. Every single persona is a different IndieAuth identity, because it's a different URL. And I don't know if any software would interpret something like a 301 redirect from a me value as a sign that it will need to be replaced \u2014 after all, somebody could be using me as the primary key (see the \"E-mail\" section above!). Memories\nWell, those will remain. As long as the archives have crawled my blog. As long as I live. But it's still gonna be sad to lose such a memento \u2014 a domain I owned almost since the day I gained a semblance of legal personhood in form of a passport and a bank card.\nI even messaged the support of my registrar back in the day, asking if one needed to be of age to register the domain. \"No\", they said, \"having a passport and a valid payment method are the only requirements\". It was a small window into the world for me \u2014 a place of my own.\nI don't want to lose it. \ud83d\ude2d Afterword\nIf anything happens. If this page disappears from the internet. Look for me at vikanezrimaya.xyz \u2014 I promise I'll try hard not to lose that one.\nI'll make sure this page is crawled by the Archive as soon as I post it, so this forever remains in history even if the domain were to be lost."
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika",
                            "https://fireburn.ru/"
                        ],
                        "like-of": [
                            "https://www.youtube.com/watch?v=si-TUEwC5_M"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dGp4nBv"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dGp4nBv"
                        ],
                        "published": [
                            "2026-08-06T11:41:13.915106428+03:00"
                        ],
                        "name": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika \u2764\ufe0f https://www.youtube.com/watch?v=si-TUEwC5_M on Thu Aug 6 11:41:13 2026"
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dGb5koD"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dGb5koD"
                        ],
                        "published": [
                            "2026-08-04T12:56:44.893619919+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>if your CLI tool doesn't have a man page, what the heck are you doing?</p>\n<p>and no, auto-generated man pages from clap macros don't count. Conversions from asciidoc or markdown are on thin ice.</p>\n<p>go learn troff and write a man page, it's fun~</p>",
                                "value": "if your CLI tool doesn't have a man page, what the heck are you doing?\nand no, auto-generated man pages from clap macros don't count. Conversions from asciidoc or markdown are on thin ice.\ngo learn troff and write a man page, it's fun~"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dGL7tXg"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dGL7tXg"
                        ],
                        "published": [
                            "2026-08-02T03:28:24.701644337+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>i hate a/b tests, this feels unethical as fuck</p>",
                                "value": "i hate a/b tests, this feels unethical as fuck"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika",
                            "https://fireburn.ru/"
                        ],
                        "like-of": [
                            "https://arxiv.org/abs/2603.18161"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dGBodee"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dGBodee"
                        ],
                        "published": [
                            "2026-07-31T21:31:07.179283656+03:00"
                        ],
                        "name": [
                            "Drawing: anime-styled girl with pink hair and yellowish-green eyes, with flowers in transgender flag colors around and hearts painted on right cheek with lesbian flag colors Vika \u2764\ufe0f https://arxiv.org/abs/2603.18161 on Fri Jul 31 21:31:07 2026"
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dG7ZZsv"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dG7ZZsv"
                        ],
                        "published": [
                            "2026-07-31T06:12:49.975527942+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>wait what do you mean today's not saturday</p>",
                                "value": "wait what do you mean today's not saturday"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dG0rV7C"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dG0rV7C"
                        ],
                        "published": [
                            "2026-07-30T06:05:20.832365762+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>i should stop nerdsniping myself with troff</p>",
                                "value": "i should stop nerdsniping myself with troff"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "category": [
                            "webdev",
                            "programming"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dFxbcVR"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dFxbcVR"
                        ],
                        "published": [
                            "2026-07-29T18:23:50.965169552+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>I think default User-Agent headers in HTTP libraries are an anti-pattern.</p>\n<p>Any HTTP library's Client object SHOULD require the consumer to explicitly set its User-Agent and MUST throw an error if the User-Agent header is implicitly unset and was not explicitly set.</p>",
                                "value": "I think default User-Agent headers in HTTP libraries are an anti-pattern.\nAny HTTP library's Client object SHOULD require the consumer to explicitly set its User-Agent and MUST throw an error if the User-Agent header is implicitly unset and was not explicitly set."
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "category": [
                            "Kittybox",
                            "passkeys",
                            "webdev"
                        ],
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dFm6Ni9"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dFm6Ni9"
                        ],
                        "published": [
                            "2026-07-28T00:58:57.789907310+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>Wow. I forgot how nice passkeys are. Two new devices added to my website in five minutes.</p>\n<p>I kind of cheated when logging in on my phone \u2014 using my password instead of plugging in my NitroKey. But I could do that!</p>\n<p>Then I created a device-bound passkey on my phone. At least I think I did \u2014 Google's passkey UI is rather inconsistent, but my phone is on an older version of Android/GMS and it still has this weird bug that makes Google Password Manager not activate on <code>navigator.credentials.create()</code>. Well, I did want a device-bound passkey anyway (a roaming passkey is only little more secure than a password, since it can be extracted still) so I achieved my goal.</p>\n<p>Then I decided my tablet also deserves a passkey. In a fit of whimsy I decided to start acpassley authentication flow right away \u2014 and quickly found an option to scan a QR code with my phone to leverage a passkey I already created. A tiny bit of fiddling with a QR code and a fingerprint scan later my tablet was in my site's dashboard.</p>\n<p>And then I wanted to create a passkey on my tablet. Which immediately tried to shove me into a cloud passkey flow. I had to tap \"other\" \u2014 and then it assumed I'd want to plug in a USB key. Sort-of reasonable assumption, but no \u2014 I had to press \"other\" again. Finally, the OS gave up and asked me directly: \"fine, where do <em>you</em> want your passkey then?\" \"This device\" was the option I wanted.</p>\n<p>Aside from this little argument with my tablet\u2026 I love living in the passwordless future.</p>",
                                "value": "Wow. I forgot how nice passkeys are. Two new devices added to my website in five minutes.\nI kind of cheated when logging in on my phone \u2014 using my password instead of plugging in my NitroKey. But I could do that!\nThen I created a device-bound passkey on my phone. At least I think I did \u2014 Google's passkey UI is rather inconsistent, but my phone is on an older version of Android/GMS and it still has this weird bug that makes Google Password Manager not activate on navigator.credentials.create(). Well, I did want a device-bound passkey anyway (a roaming passkey is only little more secure than a password, since it can be extracted still) so I achieved my goal.\nThen I decided my tablet also deserves a passkey. In a fit of whimsy I decided to start acpassley authentication flow right away \u2014 and quickly found an option to scan a QR code with my phone to leverage a passkey I already created. A tiny bit of fiddling with a QR code and a fingerprint scan later my tablet was in my site's dashboard.\nAnd then I wanted to create a passkey on my tablet. Which immediately tried to shove me into a cloud passkey flow. I had to tap \"other\" \u2014 and then it assumed I'd want to plug in a USB key. Sort-of reasonable assumption, but no \u2014 I had to press \"other\" again. Finally, the OS gave up and asked me directly: \"fine, where do you want your passkey then?\" \"This device\" was the option I wanted.\nAside from this little argument with my tablet\u2026 I love living in the passwordless future."
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dFgZ14_"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dFgZ14_"
                        ],
                        "published": [
                            "2026-07-27T08:34:51.874221344+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>i really should stop making my poor raspberry pi 4 compile an entire linux kernel. this is single-board-computer cruelty</p>",
                                "value": "i really should stop making my poor raspberry pi 4 compile an entire linux kernel. this is single-board-computer cruelty"
                            }
                        ]
                    }
                },
                {
                    "type": [
                        "h-entry"
                    ],
                    "properties": {
                        "author": [
                            "https://fireburn.ru/"
                        ],
                        "url": [
                            "https://fireburn.ru/posts/dEyERnC"
                        ],
                        "uid": [
                            "https://fireburn.ru/posts/dEyERnC"
                        ],
                        "published": [
                            "2026-07-20T20:39:56.832136081+03:00"
                        ],
                        "content": [
                            {
                                "html": "<p>maybe I'm ignorant but why do a lot of research papers are published in two-column format? it's really inconvenient to read on-screen, I have to scroll up and down and it's distracting</p>\n<p>I tried some solutions for rewriting such PDFs to something more acceptable, but they either don't work or rely on outdated dependencies\u2026</p>",
                                "value": "maybe I'm ignorant but why do a lot of research papers are published in two-column format? it's really inconvenient to read on-screen, I have to scroll up and down and it's distracting\nI tried some solutions for rewriting such PDFs to something more acceptable, but they either don't work or rely on outdated dependencies\u2026"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "rels": {
        "preconnect": [
            "https://fonts.gstatic.com"
        ],
        "stylesheet": [
            "https://fireburn.ru/.kittybox/static/style.css"
        ],
        "micropub": [
            "https://fireburn.ru/.kittybox/micropub"
        ],
        "micropub_media": [
            "https://fireburn.ru/.kittybox/media"
        ],
        "indieauth-metadata": [
            "https://fireburn.ru/.kittybox/indieauth/metadata"
        ],
        "webmention": [
            "https://fireburn.ru/.kittybox/webmention"
        ],
        "authorization_endpoint": [
            "https://fireburn.ru/.kittybox/indieauth/auth"
        ],
        "token_endpoint": [
            "https://fireburn.ru/.kittybox/indieauth/token"
        ],
        "jslicense": [
            "https://fireburn.ru/.kittybox/static/jslicense.html"
        ],
        "me": [
            "https://vikanezrimaya.xyz/",
            "https://matrix.to/#/@vika:fireburn.ru",
            "at://vikanezrimaya.xyz"
        ],
        "feed": [
            "https://fireburn.ru/feeds/main"
        ],
        "prev": [
            "https://fireburn.ru/feeds/main?after=2026-07-20T20:39:56.832136081+03:00"
        ]
    },
    "rel-urls": {
        "https://fonts.gstatic.com": {
            "rels": [
                "preconnect"
            ]
        },
        "https://fireburn.ru/.kittybox/static/style.css": {
            "rels": [
                "stylesheet"
            ]
        },
        "https://fireburn.ru/.kittybox/micropub": {
            "rels": [
                "micropub"
            ]
        },
        "https://fireburn.ru/.kittybox/media": {
            "rels": [
                "micropub_media"
            ]
        },
        "https://fireburn.ru/.kittybox/indieauth/metadata": {
            "rels": [
                "indieauth-metadata"
            ]
        },
        "https://fireburn.ru/.kittybox/webmention": {
            "rels": [
                "webmention"
            ]
        },
        "https://fireburn.ru/.kittybox/indieauth/auth": {
            "rels": [
                "authorization_endpoint"
            ]
        },
        "https://fireburn.ru/.kittybox/indieauth/token": {
            "rels": [
                "token_endpoint"
            ]
        },
        "https://fireburn.ru/.kittybox/static/jslicense.html": {
            "rels": [
                "jslicense"
            ]
        },
        "https://vikanezrimaya.xyz/": {
            "text": "https://vikanezrimaya.xyz/",
            "rels": [
                "me"
            ]
        },
        "https://matrix.to/#/@vika:fireburn.ru": {
            "text": "https://matrix.to/#/@vika:fireburn.ru",
            "rels": [
                "me"
            ]
        },
        "at://vikanezrimaya.xyz": {
            "text": "at://vikanezrimaya.xyz",
            "rels": [
                "me"
            ]
        },
        "https://fireburn.ru/feeds/main": {
            "text": "Main feed",
            "rels": [
                "feed"
            ]
        },
        "https://fireburn.ru/feeds/main?after=2026-07-20T20:39:56.832136081+03:00": {
            "text": "Older posts",
            "rels": [
                "prev"
            ]
        }
    },
    "debug": {
        "package": "https://packagist.org/packages/mf2/mf2",
        "source": "https://github.com/indieweb/php-mf2",
        "version": "v0.5.0",
        "note": [
            "This output was generated from the php-mf2 library available at https://github.com/indieweb/php-mf2",
            "Please file any issues with the parser at https://github.com/indieweb/php-mf2/issues",
            "Using the Masterminds HTML5 parser"
        ]
    }
}