Neovim for Blog Writing: Plugins, Keymaps, and a Cheatsheet

My Neovim config has always been coding-focused—LSP, treesitter, language-specific keymaps for Zig, Rust, and Go. But I recently wanted to use the same setup for writing blog posts. Here’s what I added to make Neovim a solid prose environment. The full config is at github.com/prasincs/vim-config. Writing-Focused Plugins Zen Mode zen-mode.nvim removes distractions by centering your buffer and hiding UI elements. { "folke/zen-mode.nvim", opts = {}, keys = { { "<leader>z", "<cmd>ZenMode<cr>", desc = "Zen Mode" }, }, }, Press <Space>z to toggle. The buffer centers itself, line numbers fade, and you’re left with just your text. ...

December 26, 2025 · 5 min · NextDoorHacker

Don't Unwrap in Production: A Formal Verification Guide

TL;DR: On November 18, 2025, a single .unwrap() call caused a 3-hour global Cloudflare outage. Formal verification tools like Verus could have caught this at compile time—before it reached production. This post shows how Verus’s built-in specifications for Option::unwrap() and Result::unwrap() can mathematically prove panic-freedom, with working examples you can run today. The Bug On November 18, 2025, Cloudflare experienced a 3-hour global outage. The root cause? A panic in Rust code: ...

December 24, 2025 · 13 min · NextDoorHacker

Getting sorted list of images from Amazon ECR

I recently switched from using own hosted Docker Registry to the amazon hosted Elastic Container Registry and found that the UI, well, sucks. The results aren’t returned in any kind of sorted order and the UI doesn’t help you do that. In addition, it’s the same issue with the cli tool. I wish they included a timestamp field to know when the layer/image was created but in absence of that, the image tag are the best we have to go with. ...

May 9, 2016 · 2 min · NextDoorHacker

Proxy Aware Http Client in Go

I keep running into situations where I find myself at a cafe or something where I’d rather not send all my traffic through work VPN. So alternatively, I use a SOCKS5 proxy for that. That works well for browsing, etc but what about applications I’m developing as well. Thankfully Go has a library that makes proxy aware http Clients really easy to write. It’s not executable, but I uploaded my example on Go Playground. https://play.golang.org/p/NWfG9b5GIN ...

May 8, 2016 · 2 min · NextDoorHacker

Mesos Development Environment Installation and setup

Table of Contents 1. Mesos Development Environment Installation and setup 1.1. Questions 1.1.1. Why do you want to run Mesos? 1.1.2. What Frameworks are you going to run on Mesos? 1.2. Background Readings 1.3. Pre-requisites (Development Environment) 1.3.1. Zookeeper 1.3.2. Mesos Masters 1.3.3. Mesos Slaves 1.3.4. Testing this Cluster with Spark I realized recently that I have a somewhat non-standard setup for running/testing Mesos on my OSX system. Initially, I started this to see how well Mesos compiles on OSX, but given that this setup has worked fine for me, I’ve been running it. For a more accurate benchmark, I recommend running in VMs or some cloud provider. ...

April 30, 2015 · 6 min · NextDoorHacker

Importing Open Data Files to JOSM

Following on my previous post on Getting Starting with Open StreetMap for Nepal, I wanted to look at the open datasets and GIS shapefiles that people have been sharing. Given the lack of additional data and poor satellite image resolution, being able to delineate Village Development Committee (VDC) would be great help, in my opinion. Here’s how to setup the JOSM tool to do so. We’ll get the data from HDX Data repository in the form of zip files to open in JOSM. ...

April 27, 2015 · 2 min · NextDoorHacker

Getting Started with Open StreetMap for Nepal

As you must be well aware of the enormous toll the earthquake has taken for Nepal by now, there’s still work you can do to help the boots on the ground doing rescue work by helping map the affected regions. Basically, outside of major towns and cities, Nepal’s landscape is very hilly – there are few if any roads to most villages. It doesn’t help in rescue efforts now that all the villages are reduced to rubbles. If there are people stranded in these remote locations, knowing where the houses, residential areas are would expedite the process for rescue efforts. You would be looking at satellite images of the region and labeling whether a particular item is a path, road, house, or anything else. It requires paying attention to roads and having a general sense of what could be accessible. ...

April 26, 2015 · 3 min · NextDoorHacker

Running a dev version of docker

I have recently been working on fixing some personal pain-points for Docker. It came about because of a course I am taking at UConn this fall on Troubleshooting Distributed Systems - Excellent course by the way. The current issue I’m looking at is the one about logging. Yep, I somehow managed to volunteered to do this in a month with a full-time job and 4 hours a week of driving back and forth from UConn. Anyway, I needed to run a dev version of Docker in my local machine alongside the stable version. I’m on a mac running boot2docker. There are other ways to do this but I find boot2docker sufficient for almost all the work I’d want to do in this case. ...

November 11, 2014 · 4 min · NextDoorHacker

Simple Pandoc process

So, I recently signed up for a Distributed Systems course at UConn (http://www.engr.uconn.edu/~mok11002/public_html/cse5095_fall2014.htm). It involves a lot of reading and writing reviews. I have always written these class assignments in LaTeX except when I have been expressedly forbidden from using it. However, there’s a whole gamut of problems with writing in LaTeX directly. Partly, you may not always be in a place where your environment is sane. So, being able to store as plaintext/markdown would be awesome. Here’s what I do for the reviews: ...

September 16, 2014 · 2 min · NextDoorHacker

How I learned to stop worrying and love Findbugs

Update: I know this is about a year late. I should do git stash pop more often. Also, after tweaking Jekyll Bootstrap too much I’ve decided to give up and port to something sane like Ghost or Octopress. The Five Stages of Grief Here is a cycle I see repeating in programmers (including myself) whenever a static analyzer is introduced in build process too late in the game. Denial: Before running anything “My code is awesome, the static analyzer will not catch anything for sure.” And after running – it should be a minor fix to resolving any issues Anger: ...

September 20, 2013 · 4 min · NextDoorHacker