More tools!

Here’s a list of some of the repositories I created on Github recently:

Vim plugins  
MarkdownLinks.vim 2020-02-02T03:54:14Z
PersistentScratch.vim 2020-01-02T09:56:07Z
Scripts in bash / perl / etc  
gospec 2020-01-25T12:08:24Z
json-where 2019-09-23T07:45:08Z
gnucash-xml-to-ledger-dat 2020-02-11T11:35:33Z
launchdarkly-prereq-graph-gen 2019-06-01T08:02:52Z
Firefox add-ons  
wealias-firefox-add-on 2019-02-05T13:49:12Z
open-circleci-workflows-firefox 2019-08-24T07:13:19Z
Misc  
stern 2019-03-21T14:47:12Z

I realized that I have been building a lot of tools lately. In particular, I have gotten into writing Vim plugins and forking and editing the tools I use often so that they have the options I want, but will probably never be merged into the tool’s repository itself.

Read More

Work from Home

Mercari announced on 18th February, 2020 that they will be implementing a work from home polcy for all employees starting the next day and continuing till the end of February. This past week the policy was extended one more week, until March 8th. More extensions are possibly around the corner.

So, I have been working from home since 19th February! I have a desk and a monitor at home. I brought my split keyboard (A Kinesis Freestyle 2) back home from the office. Setup-wise, I would say I have managed to re-create a very work-like environment. My house is a typical apartment in Tokyo with a floor space of 25 square meters (about 250 sq. feet). There’s a living space of about 150 sq.m and the rest is a kitchen, a bathroom and space for a refrigerator and a washing machine.

Read More

Year in Review - 2019

2019! It was my first full year at work, first full year outside India, the first time I spent a considerable amount of time learning and conversing in a foreign language. I looked back on the things I did and experienced in 2019 and wrote down the ones that stood out.

Travel

I went to Europe for the first time! It was also the first time I travelled outside India with my parents. We spent about a week in Italy! We went to Vatican City and stood in the plaza in front of St. Peter’s Basilica. I enjoyed the food and coffee that is especially in abundance in Italy, the amazing nature around Lake Como and the clean, crisp mid-August air. I also realized that most of the paintings in Rome were about war, strife, hunger and conflict.

Read More

Notes and Review - The Trial (Kafka)

The text cannot be altered, and the various opinions are often no more than an expression of despair over it.

This text perfectly describes this book. But the author put it at around the 90% mark, right when the book is about to end and you are starting to understand the kind of closure you will get from this book.

As far as disorienting books go, I have found those with non-linear timelines to be the most disorienting. In particular, you don’t know what’s going on, you have completely lost your place in the story of the book, you are invested in seeing the main character get out of whatever jam they are in but you have absolutely... Read More

Notes and Review - The Lever of Riches (Mokyr)

Summary

The Lever of Riches is a great book. I think I say that about a lot of books though. Lever of Riches is a 3-part book. In the first part, Mokyr presents a concise history of Technological progress starting in 500 BC and ending around \1915. In the second part, Mokyr compares the relative technological progress in three periods across time and space and the possible reasons (he touches on religion, culture, geography and national sentiment as possible reasons). In the last part, he draws an analogy between Biological Evolution and Technological progress.

I liked the first and second parts immensely. I didn’t find the last part (the analogy) very intersting or useful.

Read More

Setting up Wireguard - Experience

twitter-screenshot

Note: There are several guides out there which have a set of steps and the commands to set-up Wireguard on a Linux computer. This post is written along those lines but takes a different approach - it focuses more on what one can learn about basic Linux networking by doing this setup themselves.

Premise

I started out with a fairly clear goal: Setup a VPN server inside a Digital Ocean droplet to forward all local traffic through, using wireguard.

I wanted to use Wireguard mainly because it was inside the kernel which had this subconscious implication that it would be blazing fast. Also, I have seen the video on Wireguard’s website which has Alice and Bob side by side and in about 7 commands the video shows how Bob: ping Alice starts working! This was fairly revoutionary to me because until now I had used two kinds of VPNs:

Read More

More about vim's formatlistpat, formatoptions and comments options

I recently changed my vimrc file to set the formatlistpat variable explicitly for markdown files. Before making this change, I had to dive into the vim help pages and find out what option I really needed to change to get un-ordered lists to start working write.

The Problem

I like Markdown a lot. I take all my daily notes at work and at home in Markdown. It works well for me. Also, I recently discovered the Docker image that will help me convert from Markdown to any format effortlessly using a simple docker oneliner and the docker image jagregory/pandoc-docker.

Read More

Managing DNS (or any other infrastructure) using Terraform

Note: This post ended up being a lot longer than I expected it to be! It’s a post about why Terraform is great, even for setups where configurations don’t change often and how you can use it to share the access that you have with other people without giving them access to the actual infrastructure account. I will make a separate post about the specifics of importing DNS records from Cloudflare into Terraform and the process I used for that.

Terraform is great! It is a way to manage your infrastructure using a set of version-controlled text files with a plan command that tells you what is going to change and an apply command that applies the changes that the plan told you about.

Where terraform gets really good is when you store the Terraform State file in a GCS bucket and run the plan and apply commands in your repository’s CI.

Read More

Compiling vim with python3 support!

TL;DR

sudo apt-get install -y python3-distutils python3-dev
git clone https://github.com/vim/vim.git
cd vim
./configure --prefix=/usr/local \
     --enable-python3interp \
     --with-python3-config-dir=/usr/lib/python3.6/config-*
make
sudo make install

The Longer Version

Note: I put the commands at the top of the post because I hate it when people start with the story and the TL;DR comes at the end of the blog post. I strongly believe that the TL;DR of all blog posts and long text-filled posts should be at the top of the piece.

Read More

Firefox Add-on to jump from GitHub to CircleCI extremely fast!

What?

I use GitHub and CircleCI at work. One of the most common workflows for me, is to merge a PR, click on the repository name to go to the repo page, scroll down to the Readme and click on the CircleCI indicator to check the status of the CI job kicked by the merge.

When the CI workflow is done and completes successfully, I go back to the repo page and click on “Releases”, create a new release (a Git tag) and then again go to the readme to go back and wait for the Release CI to finish.

Once that is done, I open Spinnaker and wait some more for that to get triggered. For some reason, Spinnaker takes about 10 minutes to detect that a new image with a tag matching a provided regex was pushed to GCR.

Read More