Neovim autocomplete for dictionary words

I use the coq_nvim plugin in Neovim for code completion. But increasingly, more often than code, I find myself editing plaintext or markdown files with Neovim.

The coq_nvim plugin mainly relies on the Neovim LSP feature to provide autocompletion. Additionally, it also has support for custom sources. But the absence of dictionary words completion out-of-the-box in coq_nvim is disappointing.

So I created a custom coq_nvim source for dictionary words completion over the weekend. I also published it as a Neovim plugin on my GitHub for others to use.

[Read more]

A practical guide to get started with Pass

1. Introduction

In my recent endeavour to upgrade my digital security, I started using Pass, the command-line based password manager for my online accounts. While there were a few online guides that I could follow to get started with Pass, I did feel a need of a comprehensive guide for new users of Pass. In my attempt to fill the gap, I will try to touch upon various aspects that one needs to be mindful of to use Pass in the most secure and optimal way.

[Read more]

Understanding Kotlin Covariance and Contravariance

1. Introduction

To someone coming from the Java world to the world of Kotlin, the concepts of Covariance and Contravariance can be somewhat overwhelming to grab at first. But they don’t have to be once you start understanding the basic cadence of it. This article is going to be a step by step depiction of how I have come to understand these two topics.

2. Let’s create some classes!

First let’s create a small class hierarchy that we can use to understand these concepts. Paper is the parent class of the Regular paper and the Premium paper.

[Read more]

Upgrading to Debian 11 Bullseye

Introduction

Although Debian 11 codenamed Bullseye was released almost 7 months back on 14th August, 2021, it was only in January, 2022 that I upgraded all my computers running Debian 10 to Debian 11. Admittedly a little late to the party, I like to take a cautious approach to upgrading my systems, which is not very difficult to predict given my Linux distribution of choice! In this post, I am going to share my experience and the steps I used while doing the actual upgrade.

[Read more]

GIMP - Crop to the edges of a document and change Perspective

Introduction

Since I don’t have a scanner at home, if I need to quickly share a soft copy of a physical document online, usually I take a picture of the document from my mobile phone and share. But the problem with pictures is that the sides of the document do not appear parallel in the image. I used to use Google Photos to crop an image to the edges of the document so that it appears somewhat like a scanned document and not an obvious crappy picture taken from a mobile phone camera.

[Read more]