Abhinav 🌏
banner
abnv.me
Abhinav 🌏
@abnv.me
Programming languages aficionado, occasional runner, quantified-self enthusiast, and fervent napper. Works as senior software engineer at Google.

If you want to follow […]

🌉 bridged from ⁂ https://fantastic.earth/@abnv, follow @ap.brid.gy to interact
Pinned
https://stic.earth is a collection of privacy-respecting, self-hosted applications and services, which includes https://fantastic.earth, my server. It currently runs these services:

- #mastodon (Microblogging)
- #pixelfed (Image posting)
- #bookwyrm (Book […]

[Original post on fantastic.earth]
Reposted by Abhinav 🌏
January 14, 2026 at 4:51 AM
Reposted by Abhinav 🌏
haskell: if it compiles, it's probably correct [tm]

es2023: if it lints, it's 17:00 and you're allowed to start work now [tm]
January 13, 2026 at 9:22 PM
Reposted by Abhinav 🌏
Fietsenstalling

#urban #photography
January 11, 2026 at 12:53 PM
Reposted by Abhinav 🌏
Sometimes in the hard places, it's worth the reminder just to be amazed by things as simple as the shapes of leaves against the sky
January 13, 2026 at 1:18 AM
Reposted by Abhinav 🌏
Notes for the Week #2 (2026)
This week note covers the week of 5th–11th January. All That Remains ## Life This week has been quite uneventful. I’m back to work after a break. The infamous Bangalore traffic is back and worse than before. The weather has become cold again, but this time we are better prepared. We stayed home all the week, sipping on hot beverages and occasionally eating fried stuff. On Sunday, we went out and got our 3yo 𝒜 a bicycle. I’m looking forward to fixing my own bicycle and going on rides together. ## Health I decided to walk 10000 steps every day starting this week. And I did it! I actually did better than the goal—I walked over 11000 steps every day. I felt less bloated and more energetic. The downside was the continuous soreness and tiredness. I had to take naps to recover from the fatigue. Thankfully, now my body is getting used to it and I feel less exhausted. I’ve also started stretching daily, which I feel helps me recover faster. ## Personal Work Because I spent so much time walking and napping and being otherwise tired, I didn’t do anything else much. I tried to pick up Advent of Code again, and did solve the part 1 of the day 10 with the Breadth-first search algorithm, but the 2nd part requires the A* algorithm, and I was too tired to write it. Worry not, I’ll get to it soon. Meanwhile, I shipped some minor changes to my website. I added some checkboxes in the Notes page to dim the week notes and link notes, because there are too many of them, and they drown out other notes. I also removed post tags and like/repost counts from the post listings on the homepage. Now it’s a minimal page with only post dates and titles. ## Recent Posts I wrote a post about how I use Jujutsu, the new VCS that my friend Ankur got me hooked onto. The post has been on the Lobsters front page for 21 hours at the time of writing this note. I also posted it on Programming subreddit and Hacker News, but it got no traction there 🤷🏽‍♂️. ## Watching, Reading, Listening I spent a lot of time this week—in my aforementioned state of tiredness—watching The Ancient Magus’ Bride season 2. It’s a bit of a slow burn, but it’s definitely one of the good anime in the recent years. I’m still sad about the terrible season 3 of One Punch Man 😢. I listened to a lot of music this week, mostly while on walks. Somewhere in middle, I got bored of playing music from the 21st century, and switched to music from the last century. Dreams Tonite by Alvvays was my top track this week. ## Interesting Internet Links * There and Back Again * The Second Great Error Model Convergence * Notes on fusion That’s all for this week. You can subscribe to the feed of my week notes for updates. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!
abhinavsarkar.net
January 11, 2026 at 10:18 AM
Notes for the Week #2 (2026)
This week note covers the week of 5th–11th January. All That Remains ## Life This week has been quite uneventful. I’m back to work after a break. The infamous Bangalore traffic is back and worse than before. The weather has become cold again, but this time we are better prepared. We stayed home all the week, sipping on hot beverages and occasionally eating fried stuff. On Sunday, we went out and got our 3yo 𝒜 a bicycle. I’m looking forward to fixing my own bicycle and going on rides together. ## Health I decided to walk 10000 steps every day starting this week. And I did it! I actually did better than the goal—I walked over 11000 steps every day. I felt less bloated and more energetic. The downside was the continuous soreness and tiredness. I had to take naps to recover from the fatigue. Thankfully, now my body is getting used to it and I feel less exhausted. I’ve also started stretching daily, which I feel helps me recover faster. ## Personal Work Because I spent so much time walking and napping and being otherwise tired, I didn’t do anything else much. I tried to pick up Advent of Code again, and did solve the part 1 of the day 10 with the Breadth-first search algorithm, but the 2nd part requires the A* algorithm, and I was too tired to write it. Worry not, I’ll get to it soon. Meanwhile, I shipped some minor changes to my website. I added some checkboxes in the Notes page to dim the week notes and link notes, because there are too many of them, and they drown out other notes. I also removed post tags and like/repost counts from the post listings on the homepage. Now it’s a minimal page with only post dates and titles. ## Recent Posts I wrote a post about how I use Jujutsu, the new VCS that my friend Ankur got me hooked onto. The post has been on the Lobsters front page for 21 hours at the time of writing this note. I also posted it on Programming subreddit and Hacker News, but it got no traction there 🤷🏽‍♂️. ## Watching, Reading, Listening I spent a lot of time this week—in my aforementioned state of tiredness—watching The Ancient Magus’ Bride season 2. It’s a bit of a slow burn, but it’s definitely one of the good anime in the recent years. I’m still sad about the terrible season 3 of One Punch Man 😢. I listened to a lot of music this week, mostly while on walks. Somewhere in middle, I got bored of playing music from the 21st century, and switched to music from the last century. Dreams Tonite by Alvvays was my top track this week. ## Interesting Internet Links * There and Back Again * The Second Great Error Model Convergence * Notes on fusion That’s all for this week. You can subscribe to the feed of my week notes for updates. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!
abhinavsarkar.net
January 11, 2026 at 10:18 AM
Reposted by Abhinav 🌏
been thinking about "simple" software a lot lately: why can't you just use jquery? or web components? or just write something native?

this talk hits some of those notes:

https://www.youtube.com/watch?v=AmrBpxAtPrI

i don't come to the same conclusions, but i am coming from a similar premise.
January 11, 2026 at 5:55 AM
All that remains #photography #silentsunday
January 11, 2026 at 4:41 AM
Reposted by Abhinav 🌏
A few days ago, a client’s data center "vanished" overnight. My monitoring showed that all devices were unreachable. Not even the ISP routers responded, so I assumed a sudden connectivity drop. The strange part? Not even via 4G.

I then suspected a power failure, but the UPS should have sent an […]
Original post on mastodon.bsd.cafe
mastodon.bsd.cafe
January 8, 2026 at 9:16 AM
Reposted by Abhinav 🌏
#phanpysocial changelog ✨

🗓️ Experimental "Year In Posts"
🐛 Bug fixes

🔗 https://phanpy.social/
💬 https://matrix.to/#/%23phanpy:matrix.org
Phanpy
Minimalistic opinionated Mastodon web client
phanpy.social
January 7, 2026 at 12:54 PM
I've been using #jujutsu for 3 months now and I'm quite comfortable with it. There are already tens of tutorials for JJ but would people be interested in a short post describing how I use it?
January 6, 2026 at 6:46 AM
Reposted by Abhinav 🌏
New blog post! A close look at Tahoe menu icons https://tonsky.me/blog/tahoe-icons/
It’s hard to justify Tahoe icons
Looking at the first principles of icon design—and how Apple failed to apply all of them in macOS Tahoe
tonsky.me
January 5, 2026 at 11:10 AM
First #weeknote of the year: https://abhinavsarkar.net/notes/2026-weeknotes-01-04/ about new year celebrations, graphs, and terrible TV shows.

#weeknotes #blogging
Notes for the Week #1 (2026)
This week note covers the week of 29th December 2025–4th January 2026. Ramp walk This was a week of resting and having fun with family and friends. I was on vacation for most of the week. ## Life We had another well-fed day on the 31st, starting with home-made biryani for lunch, and ordered pizza for dinner. We didn’t do much else, just chilled at home. On 1st January, all of us went to the Namma Bengaluru Aquarium in the Cubbon Park. It was a lot of fun for our 3yo 𝒜. Afterward, we walked around in the park and 𝒜 gathered a lot of cool sticks. What’s with kids liking sticks so much? On the Saturday, we went to The Bangalore Berry Company farm to pick strawberries. The four hour drive (both ways) was a pain, but picking was fun. We also got some fresh vegies. My wife made a strawberry jam today, that I eagerly consumed with pancakes that she also made for breakfast. Alas, the two weeks of fun and frolic are over. I actually stayed in bed most of the day today to recover from all the fun ٭٭happy introvert noises٭٭. ## Health I caught a bad cold early this week, caused by simply forgetting to put on a nightcap. Pleasures of being bald, I guess. Thankfully, I recovered in few days. After being able to walk over 9000 steps consistently every day, I’ve made it my daily goal to walk 10000 steps. This is partially inspired by my friend Sagrika, who did walk 10000 steps everyday in 2025. I hope it helps with reducing the weight I gained this festive season. In other news, I have reading glasses now. Here I thought I’d go one forever with my eyesight sharp, but life had other plans. I just got them last week, and it is taking a while to get adjusted to having a thing in front of my face all the time. ## Personal Work I again spent a lot of time working on the website this week. I promise, I’m done for now. * I changed the dead link checker to run only once a day. This significantly reduced the build time for the rest of 23 builds every day. * I moved the post similarity computations to run as a separate executable, which is run before the site generator is run, and outputs a JSON file with final data. Removing the computation from the site generator reduced the memory usage by a lot, and now I don’t get the alerts every hour. * I added a popular posts and notes section on the homepage. I hope this makes it easier for first-time visitors to find their way around the site. * I added a Microblog Tag Graph page to explore my growing Microblog. It uses a force-directed graph made using d3.js. Let me know what you think about it in comments. ## Recent Posts I wrote a short note collecting all the polls I ran on Mastodon in 2025. I feel like this may become a yearly tradition. ## Watching, Reading, Listening I’m yet to start on a new book this year. However, I watched a lot of TV shows and one movie this week. Wife and I finished rewatching Interior Chinatown. I loved the show again, and I fully recommend it. I continue watching The Ancient Magus’ Bride, though with great sorrow, I decided to stop watching One Punch Man season 3. I’ve never seen such a great manga being turned into such—pardon my language Mr. Spellchecker—a shitshow. I’ve picked some new shows to watch this year, I hope they turn out good. On 31st December, wife and I watched Burn After Reading, a dark comedy spy thriller. Watching Clooney and Pitt really made me feel like going out for a run or a ride. ## Social Media My MastodonWrapped tells me that I spent a lot of time on Mastodon this year. I liked 1800 posts and reposted over 1600 of them! I also posted 870 posts of my own. I gained 140 followers too! ## Interesting Internet Links * 11:59 PM * How should we learn from bugs? * Use Monoids for Construction That’s all for this week. You can subscribe to the feed of my week notes for updates. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!
abhinavsarkar.net
January 4, 2026 at 1:42 PM
Reposted by Abhinav 🌏
I have never seen the word "perihelion" in a weather warning before! Wow.

I'm totally saving this to show my students why basic astro 101 is very practical sometimes (...ok maybe the prairies do not have a tidal flooding problem...but... perihelion!!)
January 2, 2026 at 11:21 PM
Reposted by Abhinav 🌏
January 2, 2026 at 5:39 PM
Reposted by Abhinav 🌏
I made a venn diagram to help you understand Moiré patterns.
January 2, 2026 at 3:58 PM
Reposted by Abhinav 🌏
January 1, 2026 at 10:10 AM
Pajama pants are another Chai tea that I have noticed in wild now. Are there more? Any #indians here to pitch in? #english
January 1, 2026 at 9:35 AM
I ran some polls on #mastodon this year, and wrote a #note about them: https://abhinavsarkar.net/notes/2025-mastodon-polls/

#blogging
Polls I Ran on Mastodon in 2025
In 2025, I ran ten polls on Mastodon exploring various topics, mostly to outsource my research to the hivemind. Here are the poll results organized by topic, with commentary. ### Contents 1. General Programming 1. JSON Pronunciation 2. Compilers 1. Compiler Backend Targets 2. Haskell Parsing Libraries 3. Compiler in Haskell with Lenses 3. Blogging & Web 1. Blog Post Length Preferences 2. Blog Post Print Support 3. Résumés on Personal Website 4. “Writing a C Compiler” Blog Series 4. Self-hosting 1. Service Packaging Preferences 2. Hetzner Backup Strategy ## General Programming ### JSON Pronunciation How do you pronounce JSON? January 15, 2025 See as table Option | Votes ---|--- Jay-Son, O as in Otter | 66 Jay-Son, O as in Utter | 27 Jay-Son, O as in Oh | 5 something else, comment | 5 Jay-Ess-On | 1 **Total** | **104** I’m in the “Jay-Son, O as in Otter” camp, which is the majority response. It seems like most Americans prefer the “Jay-Son, O as in Utter” option. Thankfully, only one person in the whole world says “Jay-Ess-On”. ## Compilers ### Compiler Backend Targets If someone were to write a new compiler book today, what would you prefer the backend to emit? October 31, 2025 See as table Option | Votes ---|--- LLVM | 42 WASM | 22 Arm assembly | 14 C | 12 X86 assembly | 6 Lua | 5 JavaScript | 4 JVM bytecode | 3 QBE | 2 CIL | 2 **Total** | **112** LLVM wins this poll hands down. It is interesting to see WASM beating other targets. ### Haskell Parsing Libraries Which is your favourite Haskell parsing library? November 3, 2025 See as table Option | Votes ---|--- Attoparsec | 7 Megaparsec | 7 Parsec | 5 ReadP | 3 Alex + Happy | 1 Flatparse | 1 Streamly | 1 Polyparse | 1 Earley | 0 Parsley | 0 **Total** | **26** I didn’t expect Attoparsec to go toe-to-toe with Megaparsec. I did some digging, and it seems like Megaparsec is the clear winner when it comes to parsing programming languages in Haskell. However, for parsing file formats and network protocols, Attoparsec is the most popular one. I think that’s wise, and I’m inclined to make the same choice. ### Compiler in Haskell with Lenses If you were to write a compiler in Haskell, would you use a lens library to transform the data structures? July 11, 2025 See as table Option | Votes ---|--- maybe | 10 no | 8 yes | 5 comment | 0 **Total** | **23** This one has mixed results. Personally, I’d like to use a minimal lens library if I’m writing a compiler in Haskell. ## Blogging & Web ### Blog Post Length Preferences What do you think is the right length of programming related blog posts (containing code) in terms of reading time? May 18, 2025 See as table Option | Votes ---|--- ~ 5 minutes | 15 ~ 10 minutes | 37 ~ 20 minutes | 28 ~ 30 minutes | 5 ~ 45 minutes | 0 ~ 1 hour | 3 **Total** | **88** As a writer of programming related blog posts, this poll was very informative for me. 10 minute long posts seem to be the most popular option, but my own posts are a bit longer, usually between 15–20 minutes. ### Blog Post Print Support Do you print blog posts or save them as PDFs for offline reading? March 8, 2025 See as table Option | Votes ---|--- Never | 38 Sometimes | 12 Other, comment in reply | 3 Often | 1 **Total** | **54** Most people do not seem to care about saving or printing blog posts. But I went ahead and added (decent) printing support for my blog posts anyway. ### Résumés on Personal Website If you have a personal website and you do not work in academia, do you have your résumé or CV on your website? August 30, 2025 See as table Option | Votes ---|--- No | 25 Yes, with a public link | 6 Yes, with a private link | 1 **Total** | **32** I don’t have a public résumé on my website either. I’d like to, but I don’t think anyone visiting my website would read it. ### “Writing a C Compiler” Blog Series Would people be interested in a series of blog posts where I implement the C compiler from “Writing a C Compiler” book by Nora Sandler in Haskell? November 11, 2025 See as table Option | Votes ---|--- Yes | 21 No | 3 I hate book implementations | 1 **Total** | **25** Well, 84% people voted “Yes”, so this is (most certainly) happening in 2026! ## Self-hosting ### Service Packaging Preferences If I were to release a service to run on servers, how would you prefer I package it? December 30, 2025 See as table Option | Votes ---|--- Docker image | 35 Source + build instructions | 30 Statically linked executable | 22 Nix package + module | 8 Dynamically linked executable | 6 Something else? | 4 **Total** | **105** Well, people surely love their Docker images. Surprisingly, many are okay with just source code and build instructions. Statically linked executable are more popular now, probably because of the ease of deployment. Many also commented that they’d prefer OS specify package like deb or rpm. However, my personal preference is Nix package and NixOS module. ### Hetzner Backup Strategy If you run services on Hetzner, do you keep a backup of your data entirely off Hetzner? August 9, 2025 See as table Option | Votes ---|--- I have a backup entirely off Hetzner | 19 I have a backup on Hetzner | 8 I have no backups | 5 **Total** | **32** It is definitely wise to have an offsite backup. I’m still figuring out the backup strategy for my VPS. * * * That’s all for this year. Let’s see what polls I come up with in 2026. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading!
abhinavsarkar.net
December 31, 2025 at 2:33 PM
Reposted by Abhinav 🌏
Here is the CPU usage graph for the last 24 hours of the FediMeteo VM. A full 24 hours, during which a huge number of people are connecting, helped by the traction gained from being among the top stories on Hacker News and Lobsters, as well as the many […]

[Original post on mastodon.bsd.cafe]
December 31, 2025 at 11:29 AM
Reposted by Abhinav 🌏
A new #weeknote about parties, out-of-memory errors and categorizing feeds: https://abhinavsarkar.net/notes/2025-weeknotes-12-28/

#blogging #weeknotes
Notes for the Week #52 (2025)
This week note covers the week of 22nd–28th December. The Heading * It is the week of Christmas holidays. Though majority of Indians are not christian, a lot of us still take vacations during this period. The stores and malls in Bengaluru put on decorations and play Christmas music. The weather has also been great. I took half of the week off just to cool down at home. * The big event of this week for me was Tanvi’s Christmas party. It must have been a decade since I went to a party this big. It was a bit awkward being the oldest person in the room, but I had a lot of fun. We talked about many random topics and had delicious food brought by everyone. I’m looking forward to more parties in future. * My walking pace has improved to almost pre-burnout times. I’m making it a point to walk two km every day, mostly at the night when the weather is slightly chilly. * It’s a great time to drive in Bengaluru right now. The traffic is almost nonexistent and the roads are empty. We went out on multiple days this week, and I was able to drive in the 4th gear! * We decided to go to the newly reopened The Hole in the Wall Café on Christmas morning for breakfast, but upon reaching, found it closed. Then we randomly wandered into Mitco Coffee. It was … not great. We finally made it to The Hole in the Wall Café on Sunday. We had sandwiches and waffles for breakfast. It was as good as ever. Despite the remodeling, their food menu and taste remains unchanged. * I wrote a note about all the things I worked upon in this website in 2025. On that note1 … * I spent most of my free time trying to debug the high memory consumption issue in my static site generator, which I introduced when I added support for finding and displaying similar posts in post footers. The generator was taking almost 5 GB memory to run, causing frequent OOM kills. I deduced that the issue is because the GHC garbage collector is not able to keep up pace with the large amount of garbage generated by the text similarity computation. I tried various things like caching more/less data, computing more/less, using different data types (ints, floats, doubles), increasing/reducing concurrency. Nothing worked well enough. Finally, I stumbled upon an article _Lessons in Managing Haskell Memory_ , which advised using Compact Regions. That and some clever use of Shake Oracle caches reduced the memory usage to 3 GB. It’s not great, but I’m out of ideas for now. * No books read this week, but I did watch a lot of TV shows. Wife and I continued our watch of Interior Chinatown. We also binged many episodes of Barakamon. On my own, I stared watching The Ancient Magus’ Bride, and I’m enjoying it a lot. It’s a slow burn, but I am happy to watch a non-Isekai fantasy anime at last. * This week I rearranged my feeds using the permaculture principles. I used to have them categorized by topics like Compilers, Database, Hardware, etc, but I found that I rarely used the categories to browse the feeds. The aforementioned article really resonated with me. It took some time, but I put all my active feeds in these new categories: The old categories are still there; I’m slowly migrating my feeds to the new ones. But this new categorization has been immediately useful to me. Since the categories are ordered by priority, it is easier for me to go through them. * Some interesting links from the internet for this week: * Functors, Applicatives, And Monads In Pictures * The Linux kernel is just a program * The Colonization of Confidence That’s all for this week. You can subscribe to the feed of my week notes for updates. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading! * * * 1. Pun intended, as always.↩︎
abhinavsarkar.net
December 28, 2025 at 1:26 PM
Reposted by Abhinav 🌏
Being aesthetically impaired I rarely post photos or art, but this…

A Man Feeding Swans in the Snow, Poland | Marcin Ryczek
December 28, 2025 at 7:37 PM
Reposted by Abhinav 🌏
I was recently reminded of this.

A couple decades ago, I wrote a short paper that described how the basic approaches of cryptography and computer security lead to an efficient and practical privilege escalation attack against master-keyed mechanical lock, which I published in IEEE Security and […]
Original post on federate.social
federate.social
December 29, 2025 at 1:41 AM
A new #weeknote about parties, out-of-memory errors and categorizing feeds: https://abhinavsarkar.net/notes/2025-weeknotes-12-28/

#blogging #weeknotes
Notes for the Week #52 (2025)
This week note covers the week of 22nd–28th December. The Heading * It is the week of Christmas holidays. Though majority of Indians are not christian, a lot of us still take vacations during this period. The stores and malls in Bengaluru put on decorations and play Christmas music. The weather has also been great. I took half of the week off just to cool down at home. * The big event of this week for me was Tanvi’s Christmas party. It must have been a decade since I went to a party this big. It was a bit awkward being the oldest person in the room, but I had a lot of fun. We talked about many random topics and had delicious food brought by everyone. I’m looking forward to more parties in future. * My walking pace has improved to almost pre-burnout times. I’m making it a point to walk two km every day, mostly at the night when the weather is slightly chilly. * It’s a great time to drive in Bengaluru right now. The traffic is almost nonexistent and the roads are empty. We went out on multiple days this week, and I was able to drive in the 4th gear! * We decided to go to the newly reopened The Hole in the Wall Café on Christmas morning for breakfast, but upon reaching, found it closed. Then we randomly wandered into Mitco Coffee. It was … not great. We finally made it to The Hole in the Wall Café on Sunday. We had sandwiches and waffles for breakfast. It was as good as ever. Despite the remodeling, their food menu and taste remains unchanged. * I wrote a note about all the things I worked upon in this website in 2025. On that note1 … * I spent most of my free time trying to debug the high memory consumption issue in my static site generator, which I introduced when I added support for finding and displaying similar posts in post footers. The generator was taking almost 5 GB memory to run, causing frequent OOM kills. I deduced that the issue is because the GHC garbage collector is not able to keep up pace with the large amount of garbage generated by the text similarity computation. I tried various things like caching more/less data, computing more/less, using different data types (ints, floats, doubles), increasing/reducing concurrency. Nothing worked well enough. Finally, I stumbled upon an article _Lessons in Managing Haskell Memory_ , which advised using Compact Regions. That and some clever use of Shake Oracle caches reduced the memory usage to 3 GB. It’s not great, but I’m out of ideas for now. * No books read this week, but I did watch a lot of TV shows. Wife and I continued our watch of Interior Chinatown. We also binged many episodes of Barakamon. On my own, I stared watching The Ancient Magus’ Bride, and I’m enjoying it a lot. It’s a slow burn, but I am happy to watch a non-Isekai fantasy anime at last. * This week I rearranged my feeds using the permaculture principles. I used to have them categorized by topics like Compilers, Database, Hardware, etc, but I found that I rarely used the categories to browse the feeds. The aforementioned article really resonated with me. It took some time, but I put all my active feeds in these new categories: The old categories are still there; I’m slowly migrating my feeds to the new ones. But this new categorization has been immediately useful to me. Since the categories are ordered by priority, it is easier for me to go through them. * Some interesting links from the internet for this week: * Functors, Applicatives, And Monads In Pictures * The Linux kernel is just a program * The Colonization of Confidence That’s all for this week. You can subscribe to the feed of my week notes for updates. If you have any questions or comments, please leave a comment below. If you liked this post, please share it. Thanks for reading! * * * 1. Pun intended, as always.↩︎
abhinavsarkar.net
December 28, 2025 at 1:26 PM