Posts by Abhinav Sarkar

Subscribe
Archives
New post on abhinavsarkar.net: Reading Time Estimates for Pandoc Based Blog Generators
May 14, 2025
Reading Time Estimates for Pandoc Based Blog Generators If you, like me, are one of those who have written their own static-site generators based on Pandoc...
New post on abhinavsarkar.net: Running a Goaccess Server on NixOS
April 21, 2025
Running a Goaccess Server on NixOS Goaccess is an open source real-time web log analyzer. We can use it to parse a server access log file, such as of Nginx,...
New post on abhinavsarkar.net: Interpreting Brainfuck in Haskell
January 19, 2025
Interpreting Brainfuck in Haskell Writing an interpreter for Brainfuck is almost a rite of passage for any programming language implementer, and it’s my turn...
New post on abhinavsarkar.net: Solving Advent of Code “Seating System” with Comonads and Stencils
January 6, 2025
Solving Advent of Code “Seating System” with Comonads and Stencils In this post, we solve the Advent of Code 2020 “Seating System” challenge in Haskell using...
New Post on abhinavsarkar.net: Interesting Links for December 2024
January 1, 2025
Interesting Links for December 2024 A special Haskell edition of some interesting articles I recently read on the internet, starting with some Haskell-in-...
New post on abhinavsarkar.net: Interesting Links for November 2024
November 20, 2024
Interesting Links for November 2024 A special Programming Languages: Theory, Design and Implementation edition of some interesting articles I recently read...
New post on abhinavsarkar.net: Going REPLing with Haskeline
October 31, 2024
Going REPLing with Haskeline So you went ahead and created a new programming language, with an AST, a parser, and an interpreter. And now you hate how you...
New post on abhinavsarkar.net: Getting Started with Nix for Haskell
August 29, 2024
Getting Started with Nix for Haskell So, you’ve heard of the new hotness that is Nix, for creating reproducible and isolated development environments, and...
New post on abhinavsarkar.net: Interesting Links for July 2024
August 1, 2024
Interesting Links for July 2024 Here are some interesting things I recently read on the internet: The Unexpected Poetry of PhD Acknowledgements I love it...
New post on abhinavsarkar.net: Interesting Links for June 2024
June 14, 2024
Interesting Links for June 2024 Here are some interesting things I recently read on the internet: “As I walk around Philadelphia I often converse with...
New post on abhinavsarkar.net: Interesting Links for May 2024
May 22, 2024
Interesting Links for May 2024 Here are some interesting things I recently read on the internet: An Object-Oriented Language for the ’20s Adam Nelson remixes...
New post on abhinavsarkar.net: Interesting Links for April 2024
April 16, 2024
Interesting Links for April 2024 Here are some interesting things I recently read on the internet: A lazy and flippant classification of programming...
New post on abhinavsarkar.net: Solving Advent of Code ’23 “Aplenty” by Compiling
April 7, 2024
Solving Advent of Code ’23 “Aplenty” by Compiling Every year I try to solve some problems from the Advent of Code (AoC) competition in a not straightforward...
New post on abhinavsarkar.net: Generating Standalone Haddock Docs for a Multi-package Haskell Project
December 31, 2023
Generating Standalone Haddock Docs for a Multi-package Haskell Project So here’s a thing I recently wanted to do. I am working on a personal Haskell project,...
New post on abhinavsarkar.net: Implementing Co, a Small Language With Coroutines #4: Adding Channels
June 3, 2023
Implementing Co, a Small Language With Coroutines #4: Adding Channels In the previous post, we added coroutines to Co, the small language we are implementing...
New post on abhinavsarkar.net: Adding Mastodon Comments to a Website
May 19, 2023
Adding Mastodon Comments to a Website Two of the core ideas of IndieWeb are POSSE and Backfeed. The idea behind POSSE is that you publish your content on...
New post on abhinavsarkar.net: Automating Mastodon Backups with NixOS and Syncthing
May 13, 2023
Automating Mastodon Backups with NixOS and Syncthing Six months ago, a bunch of my friends and I started the Mastodon instance fantastic.earth. Till now, we...
New post on abhinavsarkar.net: Interesting Links for April 2023
May 2, 2023
Interesting Links for April 2023 Here are some interesting things I read on the internet in April 2023: Haskell Pedagogical Downsides of Haskell Why teaching...
New post on abhinavsarkar.net: Interesting Links for March 2023
April 1, 2023
Interesting Links for March 2023 Here are some interesting things I read on the internet in March 2023: Haskell Evolving isDigit memfd: An example of Haskell...
New post on abhinavsarkar.net: Interesting Links for February 2023
March 29, 2023
Interesting Links for February 2023 Here are some interesting things I read on the internet in February 2023: Haskell 6 ways to manage allocated memory in...
New post on abhinavsarkar.net: Pulling missing context of replied toots in Mastodon
March 5, 2023
Pulling missing context of replied toots in Mastodon Mastodon is a decentralized social media platform that’s become increasingly popular in recent years....
New post on abhinavsarkar.net: Implementing Co, a Small Language With Coroutines #3: Adding Coroutines
March 2, 2023
Implementing Co, a Small Language With Coroutines #3: Adding Coroutines In the previous post, we wrote the interpreter for basic features of Co, the small...
New post on abhinavsarkar.net: Implementing Co, a Small Language With Coroutines #3: Adding Coroutines
February 11, 2023
Implementing Co, a Small Language With Coroutines #3: Adding Coroutines In the previous post, we wrote the interpreter for basic features of Co, the small...
Writing a Static Site Generator Using Shake
December 17, 2022
Static site generators (SSGs) are all rage these days as people realize that plain HTML websites are good enough for most cases. SSGs take raw data in...
Solving Advent of Code “No Space Left On Device” with Parsers, Zippers and Interpreters
December 9, 2022
In this post, we solve the Advent of Code 2022, “No Space Left On Device” challenge in Haskell using parsers, zippers and interpreters. This post was...
Solving Rock-Paper-Scissors in Type-level Haskell
December 2, 2022
Let’s solve part 1 of today’s Advent of Code challenge “Rock Paper Scissors” in type-level Haskell. Instead of using term-level programming as we usually do,...
A* Algorithm in Haskell
December 1, 2022
The start of the Advent of code today reminded me of the A* algorithm, which I often find myself using for graph pathfinding related problems. If there is a...
Monitoring VPS Network Usage with vnStat and NixOS
November 16, 2022
I self-host a bunch of services on a VPS. To monitor the network usage of the VPS, I use vnstat, a simple network monitoring tool. After enabling the vnstat...
Just, Nix Shell and Podman are a Killer Combo
October 5, 2022
Let’s say, for some unclear reasons, you need to compile the “Hello World” C program using a variety of C compilers. #include int main() { printf("Hello...
Setting up Fail2Ban with Nginx and Cloudflare on NixOS
August 31, 2022
Fail2Ban is a service to scan the log files of various services on servers to find malicious IPs (by matching log lines to predefined regular expressions),...
Creating NixOS custom image for Digital Ocean VPS
August 27, 2022
Recently, I decided to move my Digital Ocean (DO) VPS to NixOS. The first step to do so is to create a custom NixOS image because NixOS is not an OS option...
Solving Advent of Code “Handy Haversacks” in Type-level Haskell
January 4, 2021
I have been trying to use type-level programming in Haskell to solve interesting problems since I read Thinking with Types by Sandy Maguire. Then I found...
GitHub
This email brought to you by Buttondown, the easiest way to start and grow your newsletter.