notes

The x4ivygA51F Rabbit Hole

25 Nov 2020 - 2 minute read
categories: notes

I recently read the blog about the 200 most common passwords of 2020. It was also featured in Jon Snader’s recent blog post. When the original post was made, I had glanced at the mysterious x4ivygA51F, which appeared at the 148th spot. But when I read the blog post again and searched for an update on it, no one had been able to figure out what that meant. There were some guesses.

Generating Go docs using gomarkdoc and pandoc

24 Nov 2020 - 2 minute read
categories: notes golang tags: linux foss golang

I recently had to distribute the documentation of an internal library to users. Go developers are used to their editor to providing them with auto completion, usually with the help of gopls. A lot of times it is necessary for users to be able to browse a comprehensive list of methods and data types available for reference. For open source projects, we rely on godoc.org and pkg.go.dev. But unfortunately, it is not easy to host one for internal projects.

Containerized development workflow using remote gopls server

05 Nov 2019 - 4 minute read
categories: golang notes tags: golang docker

If your CGO development toolchain depends on external dependencies such as system libraries, or you want to develop on an older version of go while having a different version on your host, you can use a docker container and mount the source from your host machine and build the project inside the container. This can enable us to have a consistent development environment across various developers and their host systems without having to modify system libraries.

Facebook Birthday List to ICS file

11 Oct 2019 - 2 minute read
categories: notes tags: digital wellbeing python

I have recently stopped using facebook, but I really miss the convenience of the birthday notifications. I tried to find the .ics which you could export from facebook events page to your calendar program but it was nowhere to be found and I thought I would have to script scraping it myself. A quick search on github later, I found that someone had already beat me to it. You can find the repository on github and follow the documentation, but I have documented the steps I followed below:

Using Docker containers for building Archaic Projects

04 Aug 2019 - 3 minute read
categories: notes tags: notes docker

Sometimes old projects and libraries require certain specific system library versions that are hard to reproduce, or cumbersome to replicate on our development environment. Docker can be used to simplify the build process of these projects and it is often a lot faster than starting a VM in your machine and using that to build these projects. I recently found out about such a project at my workplace. This was a C++ binary that was statically compiled, so there was no issue with distribution but the build process had become very complex over time.

A review of Siempo Launcher for Android

17 Mar 2019 - 7 minute read
categories: notes tags: android digital wellbeing

Three months of self inflicted digital pain and how it changed my habits Last December, I decided to start an experiment and adopt a new launcher called Siempo apart from the OnePlus and Nova launcher that I’m used to since I started using Android. After three months, even though I have stopped using it, I have observed some changes and would like to share it with my readers who are also interested in digital well being.

Setting SO_REUSEPORT and similar socket options in Go 1.11

08 Jan 2019 - 2 minute read
categories: notes golang tags: golang networking

Go recently introduced a heavily requested feature that allows programmers to set socket options before accepting and creating connections. You can find a mention of this in Go 1.11 Release Notes. Although, not many have written on this and implementing this is a bit confusing due to a change in the way one has to implement this. So I decided to share this with others who might be interested in using this feature.

Streaming audio from Linux to Android using PulseAudio over LAN

19 Nov 2018 - 1 minute read
categories: notes tags: android linux

Suppose you are in a situation where you want to watch a movie on your TV or monitor but don’t want to use speakers. Maybe you are looking to listen to an audio book stored on your laptop but don’t want to transfer it to your phone. Or you just want to buy an audio jack splitter. Look no further, PulseAudio to the rescue. PulseAudio provides streaming via SimpleProtocol on TCP via a simple command.

Convolutional Neural Network Basics

14 Oct 2018 - 3 minute read

Convolution It is a matrix operation in which we add each element with local neighbors with respect to the weight of the kernels. Mathematically, it is the element-wise product of each element of the kernel with the image-piece followed by a sum. These filters can be used to detect various things like edges etc. Filters/Kernels Filters/Kernels capture features in their receptive field using matrices containing values (weights) with convolution. A higher result of this operation implies that the feature captured by the kernel is in the image, and a lower score implies the opposite.

Automate fast download of a large files through FTP

20 Aug 2018 - 1 minute read
categories: notes tags: linux productivity

lftp -e 'set net:timeout 10; pget -n 10 BigFile.zip; bye' -u UserName,PassWord ftp://BigFiles.com