A wish list by an Engineer for the future of the Software. Cellebrite facilitates the unethical surveillance. In this article, Signal team talks about exploiting a (one of many) vulnerabilities in their devices to execute arbitrary code. A reminder to not take things for granted. This article talks about some things which are (to many of […]
Spaghetti is a web-based interactive dependency analysis tool for Golang projects. Everything you need to know about Sound.
Inspired by Angelo’s Elsewhere series, I’m starting On The Web series. So, every week I’ll be posting some interesting things I came across on the Internet. Today is the first edition of the series and here goes: An elegant piece of C code from Rob Pike that implements Regular Expression Matcher in less than 50 lines. […]
In this article, I’ll talk about a pretty old RPC Protocol, XMLRPC. It is over 20 years old now and, it is mostly associated in legacy systems. I’d have never come across it if it wasn’t for ROS. ROS 1.x still uses XMLRPC for all of its communication. So, I decided to read out the […]
ROS is an acronym for Robot Operating System, but contrary to the name it is not an operating system. Instead, ROS is an open-source framework for building software for Robots. I got introduced to ROS in my current company which is a Cloud Robotics startup. In this article, I’ll give a general introduction to ROS […]
In this article, I’ll share my thoughts about Selfhosting.
I’ve been a happy user of Bitwarden for over a year. In this article, I’ll talk about an alternate implementation of Bitwarden and my experience with it.
Gorm is a popular ORM library in Golang that supports the most commonly used Relational Databases. In this article, I want to talk about a subtle problem in the unique index support for Gorm. For more context, let’s first briefly discuss Database Indexes and how Gorm supports them. Feel free to skip the next few […]
Salvatore Sanfilippo described an algorithm using Redis to implement distributed locking called Redlock. In this article, we will talk about this algorithm.
Today while working on a Golang code-base at work, I came across an anomaly, or at least that’s what I thought. To give you a context, I wrote a simple function that linearly traverses a slice to find an element based on some criteria. The function then returns the element and leftover slice without the […]