Recent Blogs

upi.link - Progress Update 1

17 Feb 2019 - 3 minute read
categories: upi.link

What am I building, in a sentence? 🔗upi.link: A programmable shortlink generator based on UPI (universal bank2bank payments service in 🇮🇳) sharable via social media & chat. What did I complete till now? Highlights Deployed at upi.link I used AWS Free tier to deploy this website to reduce cost for hosting this. It uses AWS Lambda Functions to generate shortlinks which are stored inside Redis with a TTL of 3 Days.

Presentation about upi.link at Barcamp Bangalore - Techlash

03 Feb 2019 - 1 minute read
categories: upi.link

I recently got a chance to talk about upi.linkduring Techlash at Barcamp Bangalore. I got to tell people about having started this small project. Here is the link to my presentation: Presentation A small summary of upi.link Introducing [upi.link](https://upi.link), which is is a Payment Service Provider (PSP) neutral UPI Request Link generator built upon the UPI Deeplinking Spec, enabling SMEs and individual users to collect payments directly by sharing links on chat apps or embedding on their own websites, without having to rely on building their own mobile apps and calling intents, making manual UPI requests on PSP apps, tying up with service aggregators that charge fees, or even purchasing licenses to APIs when they are just getting started.

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.

Whistle Project – Winner EthIndia 2018 Hackathon

25 Sep 2018 - 5 minute read

Recently I took part in EthIndia Hackathon that took place in Bengaluru. This time I was participating without a team after a long time and made a team on the day of the event. All three of us (Ronak, Ayush and I) had a different idea of what we should work on but we finally came to a consensus on an idea that I had got from my current workplace’s CTO (Kailash Nadh).

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

Rewriting Lyric API in Golang

01 Aug 2018 - 2 minute read
categories: notes tags: golang js lyrics music node spotify

I had originally written a Lyric API as a hobby project way back using Node. I published it on github as a combination of API server hosted on heroku along with a library hosted on NPM. It still gets 50 downloads a week and the hosted heroku API server is actually used by many people even though it offers little to no functionality. I was recently looking at wtf dashboard and even contributed a small patch to it.

Functional Options for testing without mocks in Golang

30 Jul 2018 - 3 minute read
categories: notes golang tags: api golang notes

Suppose you have a HTTP request to be sent but don’t care about the result or errors. This request is sent through a function which is usually called inside a goroutine and is not in any way a core aspect of your main logic. The only important part is forming the actual request and the payload. When you wrote this function, you did not write tests as it would be a pain to make the function return something and check it.

Emacs starts a bit slow…

07 Jun 2018 - 1 minute read
categories: uncategorized

Emacs starts a bit slow but it can be started as a daemon emacsclient -c -n -e '(switch-to-buffer nil)'